4 4
5# 도구 참조5# 도구 참조
6 6
7> Claude Code가 사용할 수 있는 도구의 완전한 참조 자료이며, 권한 요구사항 및 도구별 동작을 포함합니다.7> Claude Code가 사용할 수 있는 도구의 완전한 참조로, 권한 요구사항 및 도구별 동작을 포함합니다.
8 8
9Claude Code는 코드베이스를 이해하고 수정하는 데 도움이 되는 도구 세트에 접근할 수 있습니다. 도구 이름은 [권한 규칙](/docs/ko/permissions#tool-specific-permission-rules), [subagent 도구 목록](/docs/ko/sub-agents), 및 [hook 매처](/docs/ko/hooks)에서 사용하는 정확한 문자열입니다. 도구를 완전히 비활성화하려면 [권한 설정](/docs/ko/permissions#tool-specific-permission-rules)의 `deny` 배열에 해당 이름을 추가합니다.9Claude Code는 코드베이스를 이해하고 수정하는 데 도움이 되는 기본 제공 도구 세트에 액세스할 수 있습니다. 도구 이름은 [권한 규칙](/docs/ko/permissions#tool-specific-permission-rules), [서브에이전트 도구 목록](/docs/ko/sub-agents), 및 [훅 매처](/docs/ko/hooks)에서 사용하는 정확한 문자열입니다.
10 10
11사용자 정의 도구를 추가하려면 [MCP 서버](/docs/ko/mcp)를 연결합니다. Claude를 재사용 가능한 프롬프트 기반 워크플로우로 확장하려면 [skill](/docs/ko/skills)을 작성합니다. 이는 새로운 도구 항목을 추가하는 대신 기존 `Skill` 도구를 통해 실행됩니다.11Claude가 사용할 수 있는 도구와 먼저 요청할 시기를 제어하려면 설정, [훅](/docs/ko/hooks) 또는 [서브에이전트의 도구 목록](/docs/ko/sub-agents#supported-frontmatter-fields)에서 [권한 규칙](/docs/ko/permissions#tool-specific-permission-rules)을 구성합니다. 도구 이름을 허용하는 각 위치는 [권한 규칙 및 훅으로 도구 구성](#configure-tools-with-permission-rules-and-hooks)을 참조하세요.
12 12
13Permission required 열은 작업 디렉토리 내의 경로에 대해 기본 권한 모드에서 도구가 프롬프트를 표시하는지 여부를 나타냅니다. `Read`, `Grep`, `Glob`을 포함한 파일 접근 도구는 아니오로 표시되지만 [작업 디렉토리 및 추가 디렉토리](/docs/ko/permissions#working-directories) 외부의 경로에 대해서는 여전히 프롬프트를 표시합니다. `Bash`는 예로 표시되지만 프롬프트 없이 [읽기 전용 명령](/docs/ko/permissions#read-only-commands)의 기본 제공 세트를 실행합니다.13사용자 정의 도구를 추가하려면 [MCP 서버](/docs/ko/mcp)를 연결합니다. 재사용 가능한 프롬프트 기반 워크플로우로 Claude를 확장하려면 [스킬](/docs/ko/skills)을 작성합니다. 이는 새 도구 항목을 추가하는 대신 기존 `Skill` 도구를 통해 실행됩니다.
14 14
15| 도구 | 설명 | 필요한 권한 |15<Info>
16| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |16 Pro, Max 및 Team 플랜에서 Claude Code는 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 세션을 시작합니다. 여기서 분류기가 사용자 대신 이러한 프롬프트의 대부분을 결정합니다. `권한 필요` 열은 작업 디렉토리 내의 경로에 대해 [수동 모드](/docs/ko/permission-modes)에서 도구가 프롬프트하는지 여부를 보여줍니다. `Read`, `Grep` 및 `Glob`을 포함한 파일 액세스 도구는 아니오로 표시되지만 [작업 디렉토리 및 추가 디렉토리](/docs/ko/permissions#working-directories) 외부의 경로에 대해 여전히 프롬프트합니다. `Bash`는 예로 표시되지만 프롬프트 없이 기본 제공 [읽기 전용 명령](/docs/ko/permissions#read-only-commands) 세트를 실행합니다.
17| `Agent` | 작업을 처리하기 위해 자체 context window를 가진 [subagent](/docs/ko/sub-agents)를 생성합니다. [Agent 도구 동작](#agent-tool-behavior) 참조 | 아니오 |17</Info>
18| `Artifact` | HTML 또는 Markdown 파일을 [artifact](/docs/ko/artifacts)로 게시합니다: claude.ai의 비공개 대화형 페이지입니다. Team 및 Enterprise 플랜에서는 조직 내에서 공유할 수 있으며, 공개 공유는 Owner가 [활성화](/docs/ko/artifacts#control-public-sharing)해야 합니다. Pro, Max, Team 또는 Enterprise 플랜이 필요하며 `/login` 인증이 필요합니다. [가용성](/docs/ko/artifacts#availability) 참조 | 예 |18
19| `AskUserQuestion` | 요구사항을 수집하거나 모호함을 명확히 하기 위해 객관식 질문을 합니다. 질문은 사용자가 답변할 때까지 열려 있으며 기본적으로 유휴 타임아웃이 없습니다. 유휴 대화 상자가 자동으로 계속되도록 하려면 사용자 `settings.json`에서 또는 `/config`의 **Question auto-continue timeout** 행에서 [`askUserQuestionTimeout`](/docs/ko/settings#available-settings) 설정을 `60s`, `5m` 또는 `10m`으로 설정합니다. 선택한 유휴 시간이 입력 없이 경과하면 대화 상자가 자동으로 닫힙니다: 이미 선택한 옵션을 제출하고 Claude에게 키보드에서 멀어질 수 있음을 알리므로 Claude는 자체 판단으로 진행하고 나중에 다시 질문할 수 있습니다. 마지막 20초 동안 카운트다운이 나타납니다. 모든 키 입력은 타이머를 다시 시작하며, 포커스를 보고하는 터미널의 포커스된 창도 마찬가지입니다. 타임아웃은 `AskUserQuestion`의 객관식 질문에만 적용되며, 플랜 승인을 포함한 권한 프롬프트는 유휴 상태에서 자동으로 해결되지 않습니다. v2.1.198 및 v2.1.199에서는 대화 상자가 기본적으로 60초의 유휴 후 자동으로 계속되었으며, [`CLAUDE_AFK_TIMEOUT_MS`](/docs/ko/env-vars#variables)가 이를 변경하는 유일한 방법이었습니다 | 아니오 |19| 도구 | 설명 | 권한 필요 |
20| `Bash` | 환경에서 shell 명령을 실행합니다. [Bash 도구 동작](#bash-tool-behavior) 참조 | 예 |20| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---- |
21| `CronCreate` | 현재 세션 내에서 반복 또는 일회성 프롬프트를 예약합니다. 작업은 세션 범위이며 `--resume` 또는 `--continue`에서 만료되지 않으면 복원됩니다. [예약된 작업](/docs/ko/scheduled-tasks) 참조 | 아니오 |21| `Agent` | 작업을 처리하기 위해 자체 컨텍스트 윈도우가 있는 [서브에이전트](/docs/ko/sub-agents)를 생성합니다. [에이전트 팀](/docs/ko/agent-teams)이 활성화된 경우, `name`을 전달하는 호출은 [팀원](/docs/ko/agent-teams#how-claude-starts-agent-teams)을 시작할 수 있습니다. [Agent 도구 동작](#agent-tool-behavior)을 참조하세요 | 아니오 |
22| `Artifact` | HTML 또는 Markdown 파일을 [아티팩트](/docs/ko/artifacts)로 게시합니다. claude.ai의 비공개 대화형 페이지입니다. 공개 링크로 공유하거나 Team 및 Enterprise 플랜에서 조직 내에서 공유할 수 있습니다. 공개 공유는 Owner가 [활성화](/docs/ko/artifacts#control-public-sharing)해야 합니다. Pro, Max, Team 또는 Enterprise 플랜이 필요하며 `/login` 인증이 필요합니다. [가용성](/docs/ko/artifacts#availability)을 참조하세요 | 예 |
23| `AskUserQuestion` | 요구사항을 수집하거나 모호함을 명확히 하기 위해 객관식 질문을 합니다. 질문은 기본적으로 답변할 때까지 열려 있습니다. [AskUserQuestion 도구 동작](#askuserquestion-tool-behavior)을 참조하세요 | 아니오 |
24| `Bash` | 환경에서 셸 명령을 실행합니다. [Bash 도구 동작](#bash-tool-behavior)을 참조하세요 | 예 |
25| `CronCreate` | 현재 세션 내에서 반복 또는 일회성 프롬프트를 예약합니다. 작업은 세션 범위이며 만료되지 않은 경우 `--resume` 또는 `--continue`에서 복원됩니다. [예약된 작업](/docs/ko/scheduled-tasks)을 참조하세요 | 아니오 |
22| `CronDelete` | ID로 예약된 작업을 취소합니다 | 아니오 |26| `CronDelete` | ID로 예약된 작업을 취소합니다 | 아니오 |
23| `CronList` | 세션의 모든 예약된 작업을 나열합니다 | 아니오 |27| `CronList` | 세션의 모든 예약된 작업을 나열합니다 | 아니오 |
24| `Edit` | 특정 파일에 대한 대상 편집을 수행합니다. [Edit 도구 동작](#edit-tool-behavior) 참조 | 예 |28| `Edit` | 특정 파일에 대한 대상 편집을 수행합니다. [Edit 도구 동작](#edit-tool-behavior)을 참조하세요 | 예 |
25| `EnterPlanMode` | Plan Mode로 전환하여 코딩 전에 접근 방식을 설계합니다 | 아니오 |29| `EndConversation` | 지속적인 학대 입력이 있는 드문 경우 또는 Claude에게 도구를 시연하도록 요청할 때 세션을 종료합니다. Claude Code v2.1.213 이상이 필요합니다. [EndConversation 도구 동작](#endconversation-tool-behavior)을 참조하세요 | 아니오 |
26| `EnterWorktree` | 격리된 [git worktree](/docs/ko/worktrees)를 생성하고 전환합니다. 새로운 worktree를 생성하는 대신 기존 worktree로 전환하려면 `path`를 전달합니다. 처음 진입할 때 대상은 현재 저장소의 worktree이거나, 다중 저장소 작업 공간에서 그 안에 중첩된 저장소의 worktree일 수 있습니다. v2.1.203 이전에는 중첩된 저장소의 worktree가 거부되었습니다. `.claude/worktrees/` 외부의 `path`는 세션의 작업 디렉토리 및 쓰기 접근을 해당 위치로 이동하므로 승인을 요청하기 전에 프롬프트를 표시합니다. 새로운 worktree 생성 및 `.claude/worktrees/` 아래의 경로는 프롬프트를 표시하지 않습니다. v2.1.206 이전에는 Claude가 `.claude/worktrees/` 외부의 경로에 프롬프트 없이 진입했습니다. worktree 세션 내에서 또는 [`isolation: worktree`](/docs/ko/sub-agents#supported-frontmatter-fields)와 같이 고정된 작업 디렉토리를 가진 subagent에서는 `path` 형식만 사용 가능하며 대상은 세션의 저장소의 `.claude/worktrees/` 아래에 있어야 합니다 | 예 |30| `EnterPlanMode` | 코딩 전에 접근 방식을 설계하기 위해 계획 모드로 전환합니다 | 아니오 |
27| `ExitPlanMode` | 승인을 위한 계획을 제시하고 Plan Mode를 종료합니다 | 예 |31| `EnterWorktree` | 격리된 [git worktree](/docs/ko/worktrees)를 생성하고 이를 전환합니다. 새 worktree를 생성하는 대신 기존 worktree로 전환하려면 `path`를 전달합니다. 처음 진입할 때 대상은 현재 저장소의 worktree이거나 다중 저장소 작업 공간에서 그 안에 중첩된 저장소의 worktree일 수 있습니다. v2.1.203 이전에는 중첩된 저장소의 worktree가 거부되었습니다. `.claude/worktrees/` 외부의 `path`는 세션의 작업 디렉토리와 쓰기 액세스를 해당 위치로 이동하므로 진입하기 전에 승인을 요청합니다. 새 worktree 생성 및 `.claude/worktrees/` 아래의 경로는 프롬프트하지 않습니다. v2.1.206 이전에는 Claude가 `.claude/worktrees/` 외부의 경로에 프롬프트 없이 진입했습니다. worktree 세션 내에서 또는 [`isolation: worktree`](/docs/ko/sub-agents#supported-frontmatter-fields)와 같은 고정된 작업 디렉토리가 있는 서브에이전트에서는 `path` 형식만 사용 가능하며 대상은 세션의 저장소의 `.claude/worktrees/` 아래에 있어야 합니다 | 예 |
28| `ExitWorktree` | worktree 세션을 종료하고 원래 디렉토리로 돌아갑니다. [`isolation: worktree`](/docs/ko/sub-agents#supported-frontmatter-fields)와 같이 자체 작업 디렉토리에서 이미 실행되는 subagent에서는 사용할 수 없습니다 | 아니오 |32| `ExitPlanMode` | 승인을 위한 계획을 제시하고 계획 모드를 종료합니다 | 예 |
29| `Glob` | 패턴 매칭을 기반으로 파일을 찾습니다. [Glob 도구 동작](#glob-tool-behavior) 참조 | 아니오 |33| `ExitWorktree` | worktree 세션을 종료하고 원래 디렉토리로 돌아갑니다. [`isolation: worktree`](/docs/ko/sub-agents#supported-frontmatter-fields)와 같이 자체 작업 디렉토리에서 이미 실행되는 서브에이전트는 사용할 수 없습니다 | 아니오 |
30| `Grep` | 파일 내용에서 패턴을 검색합니다. [Grep 도구 동작](#grep-tool-behavior) 참조 | 아니오 |34| `Glob` | 패턴 매칭을 기반으로 파일을 찾습니다. [Glob 도구 동작](#glob-tool-behavior)을 참조하세요 | 아니오 |
31| `ListMcpResourcesTool` | 연결된 [MCP 서버](/docs/ko/mcp)에서 노출된 리소스를 나열합니다 | 아니오 |35| `Grep` | 파일 내용에서 패턴을 검색합니다. [Grep 도구 동작](#grep-tool-behavior)을 참조하세요 | 아니오 |
32| `LSP` | 언어 서버를 통한 코드 인텔리전스: 정의로 이동, 참조 찾기, 타입 오류 및 경고 보고. [LSP 도구 동작](#lsp-tool-behavior) 참조 | 아니오 |36| `ListAgents` | Claude가 `SendMessage`로 메시지를 보낼 수 있는 에이전트를 나열합니다. 세션의 서브에이전트, [에이전트 팀](/docs/ko/agent-teams) 팀원, 다른 로컬 Claude Code 세션, 그리고 이 세션이 [Remote Control](/docs/ko/remote-control)에 연결되어 있는 동안 [웹의 Claude Code](/docs/ko/claude-code-on-the-web) 세션 및 다른 머신의 Remote Control 세션입니다. `/list-agents` 명령을 지원합니다. [크로스 세션 메시징](/docs/ko/cross-session-messaging)을 참조하세요. Claude Code v2.1.224 이상이 필요하며 [크로스 세션 메시징이 활성화된](/docs/ko/cross-session-messaging#availability) 세션에만 나타납니다. 팀원 행 및 이 세션의 자체 이름을 보여주는 첫 번째 줄은 v2.1.239 이상이 필요합니다 | 아니오 |
33| `Monitor` | 백그라운드에서 명령을 실행하고 각 출력 라인을 Claude에 다시 전달하므로, Claude는 로그 항목, 파일 변경 또는 대화 중 폴링된 상태에 반응할 수 있습니다. WebSocket을 열고 각 수신 메시지를 이벤트로 처리할 수도 있습니다. [Monitor 도구](#monitor-tool) 참조 | 예 |37| `ListMcpResourcesTool` | 연결된 [MCP 서버](/docs/ko/mcp)에서 노출한 리소스를 나열합니다 | 아니오 |
34| `NotebookEdit` | Jupyter 노트북 셀을 수정합니다. [NotebookEdit 도구 동작](#notebookedit-tool-behavior) 참조 | 예 |38| `LSP` | 언어 서버를 통한 코드 인텔리전스: 정의로 이동, 참조 찾기, 유형 오류 및 경고 보고. [LSP 도구 동작](#lsp-tool-behavior)을 참조하세요 | 아니오 |
35| `PowerShell` | PowerShell 명령을 기본적으로 실행합니다. [PowerShell 도구](#powershell-tool) 참조 | 예 |39| `Monitor` | 백그라운드에서 명령을 실행하고 각 출력 줄을 Claude에게 다시 피드하므로 로그 항목, 파일 변경 또는 폴링된 상태에 대화 중에 반응할 수 있습니다. WebSocket을 열고 각 수신 메시지를 이벤트로 처리할 수도 있습니다. [Monitor 도구](#monitor-tool)를 참조하세요 | 예 |
36| `PushNotification` | 데스크톱 알림을 보내고, [Remote Control](/docs/ko/remote-control)이 연결되었을 때 휴대폰 푸시를 보내므로, 장기 실행 작업 또는 [예약된 작업](/docs/ko/scheduled-tasks)이 사용자가 자리를 떠났을 때 연락할 수 있습니다. 푸시 전달은 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 접근할 수 없는 Anthropic 호스팅 인프라를 통해 실행됩니다 | 아니오 |40| `NotebookEdit` | Jupyter 노트북 셀을 수정합니다. [NotebookEdit 도구 동작](#notebookedit-tool-behavior)을 참조하세요 | 예 |
37| `Read` | 파일의 내용을 읽습니다. [Read 도구 동작](#read-tool-behavior) 참조 | 아니오 |41| `PowerShell` | PowerShell 명령을 기본적으로 실행합니다. 가용성은 [PowerShell 도구](#powershell-tool)를 참조하세요 | 예 |
42| `PushNotification` | 데스크톱 알림을 보내고 [Remote Control](/docs/ko/remote-control)이 연결되어 있을 때 휴대폰 푸시를 보냅니다. 따라서 장시간 실행되는 작업 또는 [예약된 작업](/docs/ko/scheduled-tasks)이 사용자가 자리를 떠날 때 연락할 수 있습니다. 푸시 배달은 Anthropic 호스팅 인프라를 통해 실행되며, Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서는 액세스할 수 없습니다 | 아니오 |
43| `Read` | 파일의 내용을 읽습니다. [Read 도구 동작](#read-tool-behavior)을 참조하세요 | 아니오 |
38| `ReadMcpResourceTool` | URI로 특정 MCP 리소스를 읽습니다 | 아니오 |44| `ReadMcpResourceTool` | URI로 특정 MCP 리소스를 읽습니다 | 아니오 |
39| `RemoteTrigger` | claude.ai에서 [Routines](/docs/ko/routines)를 생성, 업데이트, 실행 및 나열합니다. `/schedule` 명령을 지원합니다. Routines는 claude.ai에 있으며 Pro, Max, Team 또는 Enterprise 플랜이 필요하므로, 이 도구는 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 접근할 수 없습니다 | 아니오 |45| `RemoteTrigger` | claude.ai에서 [루틴](/docs/ko/routines)을 생성, 업데이트, 실행 및 나열합니다. `/schedule` 명령을 지원합니다. [`RemoteTrigger` 입력 참조](/docs/ko/agent-sdk/typescript#remotetrigger)는 모든 작업 및 도구를 제거하는 조직 정책을 문서화합니다. 루틴은 claude.ai에 있으며 Pro, Max, Team 또는 Enterprise 플랜이 필요하므로 이 도구는 Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 액세스할 수 없습니다 | 아니오 |
40| `ReportFindings` | 코드 리뷰 결과를 구조화된 목록으로 보고하며, 각 결과마다 파일, 요약 및 실패 시나리오를 포함하므로 Claude Code가 텍스트로 인쇄하는 대신 렌더링할 수 있습니다. Claude는 활성 코드 리뷰 지침이 이를 수행하도록 지시할 때 호출합니다. Claude Code v2.1.196 이상이 필요합니다. v2.1.199부터 결과는 `correctness` 또는 `test-coverage`와 같은 선택적 `category` 슬러그를 포함할 수 있으며, 렌더링된 목록에서 파일 위치 옆에 표시됩니다 | 아니오 |46| `ReportFindings` | 코드 검토 결과를 구조화된 목록으로 보고합니다. 각 결과마다 파일, 요약 및 실패 시나리오가 있으므로 Claude Code가 텍스트로 인쇄하는 대신 렌더링할 수 있습니다. Claude는 활성 코드 검토 지침이 이를 수행하도록 지시할 때 호출합니다. Claude Code v2.1.196 이상이 필요합니다. v2.1.199부터 결과는 `correctness` 또는 `test-coverage`와 같은 선택적 `category` 슬러그를 전달할 수도 있으며, 렌더링된 목록의 파일 위치 옆에 표시됩니다 | 아니오 |
41| `ScheduleWakeup` | [자체 속도 `/loop`](/docs/ko/scheduled-tasks#let-claude-choose-the-interval)의 다음 반복을 다시 예약합니다. Claude는 각 반복이 끝날 때 이를 호출하여 다음 반복이 실행될 시간을 선택합니다(1분에서 1시간 사이). 사용자가 직접 호출하지는 않습니다. 루프를 종료하는 대신 Claude는 `stop: true`로 이를 호출하여 대기 중인 wakeup을 취소합니다. }`stop` 필드는 Claude Code v2.1.202 이상이 필요합니다. 대기 중인 wakeup은 [Stop hook input](/docs/ko/hooks#stop-input)의 `session_crons`에 나타납니다. Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서는 사용할 수 없으며, 여기서 간격이 없는 `/loop` 프롬프트는 고정 일정으로 실행됩니다 | 아니오 |47| `ScheduleWakeup` | [자체 페이스 `/loop`](/docs/ko/scheduled-tasks#let-claude-choose-the-interval)의 다음 반복을 다시 예약합니다. Claude는 각 반복이 끝날 때 이를 호출하여 다음 반복이 실행될 시기를 선택합니다. 1분에서 1시간 사이입니다. 직접 호출하지 않습니다. 루프를 대신 종료하려면 Claude는 `stop: true`로 호출하여 보류 중인 웨이크업을 취소합니다. `stop` 필드는 Claude Code v2.1.202 이상이 필요합니다. 보류 중인 웨이크업은 [Stop 훅 입력](/docs/ko/hooks#stop-input)의 `session_crons`에 나타납니다 | 아니오 |
42| `SendMessage` | [agent team](/docs/ko/agent-teams) 팀원에게 메시지를 보내거나, agent ID 또는 이름으로 [subagent를 재개합니다](/docs/ko/sub-agents#resume-subagents). 완료된 subagent는 백그라운드에서 자동으로 재개되며, `/tasks`에서 중지한 subagent는 그렇지 않으며 호출이 거부를 반환합니다. 구조화된 팀 프로토콜 메시지는 agent team이 필요합니다. 수신자는 다른 agent로부터의 메시지를 사용자의 동의 또는 승인으로 취급하지 않습니다. v2.1.198부터 subagent는 이를 시작한 agent로부터의 메시지를 피어 요청이 아닌 일반 작업 지시로 취급합니다. v2.1.199부터 대화 초반에 해결된 이름과 다른 agent로 현재 해결되는 이름으로의 전송은 전달되는 대신 거부됩니다. [subagent 재개](/docs/ko/sub-agents#resume-subagents) 참조 | 아니오 |48| `SendFeedback` | Claude Code에 대한 피드백 보고서를 작성합니다. 제품 문제 또는 세션에서 Claude의 자체 동작을 다룹니다. 검토할 수 있도록 머신에서 대기열에 넣습니다. Claude Code는 초안을 보내도록 선택할 때까지 아무것도 보내지 않습니다. [SendFeedback 도구 동작](#sendfeedback-tool-behavior)을 참조하세요. Claude Code v2.1.238 이상이 필요합니다 | 아니오 |
43| `SendUserFile` | 선택적 캡션과 함께 세션에서 파일을 사용자에게 보내므로, 생성된 보고서, 다이어그램, 스크린샷 또는 빌드된 아티팩트가 트랜스크립트에서만 언급되는 대신 사용자의 기기에 도달합니다. v2.1.196부터 선택적 `display` 입력은 프레젠테이션을 제어합니다: `render`는 클라이언트에서 파일을 인라인으로 열고, `attach`는 다운로드 카드만 표시하며, 설정되지 않으면 클라이언트가 파일 타입에 따라 결정합니다. [Remote Control](/docs/ko/remote-control) 클라이언트가 연결되었거나 세션이 [Claude Code on the web](/docs/ko/claude-code-on-the-web)과 같은 관리형 클라우드 환경에서 실행될 때 사용 가능합니다. 전달은 Anthropic 호스팅 인프라를 통해 실행되므로, 이 도구는 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 사용할 수 없습니다 | 아니오 |49| `SendMessage` | 다른 에이전트에게 메시지를 보냅니다. [에이전트 팀](/docs/ko/agent-teams) 팀원, [에이전트 ID 또는 이름으로 재개하는](/docs/ko/sub-agents#resume-subagents) \[서브에이전트], 또는 다른 Claude Code 세션 중 하나입니다. 이 머신 또는 그 이상입니다. 다른 세션으로 메시징하려면 Claude Code v2.1.224 이상이 필요합니다. [크로스 세션 메시징](/docs/ko/cross-session-messaging)은 Claude가 도달할 수 있는 세션, [메시지가 도착할 때의 모습](/docs/ko/cross-session-messaging#what-a-message-looks-like), 및 [다른 세션이 유휴 상태가 될 때 Claude가 공지를 받는 방법](/docs/ko/cross-session-messaging#get-a-notice-when-another-session-goes-idle)을 다룹니다. Claude는 선택적 `summary` 입력을 포함할 수 있습니다. 일반적으로 5-10단어이며, Claude Code는 한 줄 미리보기로 표시합니다. Claude가 [일반 텍스트 메시지](/docs/ko/cross-session-messaging#limitations)에서 생략하면 Claude Code는 메시지의 첫 번째 줄을 요약으로 사용합니다. Claude Code는 200자보다 긴 요약을 줄임표로 자릅니다 | 아니오 |
44| `ShareOnboardingGuide` | }`ONBOARDING.md`를 업로드하고 팀원이 Claude Code에서 열 수 있는 공유 링크를 반환합니다. 가이드가 작성된 후 `/team-onboarding`에서 호출됩니다. Pro, Max, Team 및 Enterprise 플랜의 claude.ai 구독자가 사용 가능합니다 | 예 |50| `SendUserFile` | 세션의 파일을 선택적 캡션과 함께 사용자에게 보냅니다. 생성된 보고서, 다이어그램, 스크린샷 또는 빌드된 아티팩트가 트랜스크립트에서만 언급되는 대신 장치에 도달합니다. v2.1.196부터 선택적 `display` 입력은 프레젠테이션을 제어합니다. `render`는 파일을 클라이언트에서 인라인으로 열고, `attach`는 다운로드 카드만 표시하며, 설정되지 않으면 클라이언트가 파일 유형으로 결정합니다. [Remote Control](/docs/ko/remote-control) 클라이언트가 연결되어 있거나 세션이 [웹의 Claude Code](/docs/ko/claude-code-on-the-web)와 같은 관리형 클라우드 환경에서 실행될 때 사용 가능합니다. 배달은 Anthropic 호스팅 인프라를 통해 실행되므로 도구는 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 사용할 수 없습니다 | 아니오 |
45| `Skill` | 주 대화 내에서 [skill](/docs/ko/skills#control-who-invokes-a-skill)을 실행합니다 | 예 |51| `ShareOnboardingGuide` | `ONBOARDING.md`를 업로드하고 팀원이 Claude Code에서 열 수 있는 공유 링크를 반환합니다. 가이드가 작성된 후 `/team-onboarding`에서 호출됩니다. claude.ai 구독자가 Pro, Max, Team 및 Enterprise 플랜에서 사용 가능합니다 | 예 |
46| `TaskCreate` | 작업 목록에 새 작업을 생성합니다 | 아니오 |52| `Skill` | 주 대화 내에서 [스킬](/docs/ko/skills#control-who-invokes-a-skill)을 실행합니다 | 예 |
47| `TaskGet` | 특정 작업의 전체 세부 정보를 검색합니다 | 아니오 |53| `TaskCreate` | 작업 목록에 새 작업을 생성합니다. Claude Code는 [작업 도구 가용성](#task-tool-availability) 아래에 나열된 모델에서 이를 제외합니다. 옵트인하지 않는 한 | 아니오 |
48| `TaskList` | 현재 상태와 함께 모든 작업을 나열합니다 | 아니오 |54| `TaskGet` | 특정 작업의 전체 세부 정보를 검색합니다. Claude Code는 [작업 도구 가용성](#task-tool-availability) 아래에 나열된 모델에서 이를 제외합니다. 옵트인하지 않는 한 | 아니오 |
49| `TaskOutput` | 백그라운드 작업에서 출력을 검색합니다. `Read`를 작업의 출력 파일 경로에서 사용하는 것을 권장합니다. ID와 일치하는 작업이 없으면 오류는 실행 중인 백그라운드 agent를 ID 및 설명으로 나열합니다. v2.1.203 이전에는 오류가 누락된 ID만 명명했습니다 | 아니오 |55| `TaskList` | 현재 상태와 함께 모든 작업을 나열합니다. Claude Code는 [작업 도구 가용성](#task-tool-availability) 아래에 나열된 모델에서 이를 제외합니다. 옵트인하지 않는 한 | 아니오 |
50| `TaskStop` | ID로 실행 중인 백그라운드 작업을 종료합니다. }또한 [agent team 팀원](/docs/ko/agent-teams) 또는 agent ID 또는 이름으로 명명된 백그라운드 agent도 허용합니다. v2.1.198 이전에는 백그라운드 작업 ID만 허용했습니다. }ID와 일치하는 작업이 없으면 오류는 실행 중인 백그라운드 agent를 ID 및 설명으로 나열하며, 다른 agent가 생성한 agent도 포함합니다. v2.1.203 이전에는 오류가 실행 중인 팀원 및 명명된 agent를 나열했지만 다른 agent가 생성한 백그라운드 agent는 나열하지 않았으므로 주 대화에서 식별하거나 중지할 수 없었습니다 | 아니오 |56| `TaskOutput` | 백그라운드 작업에서 출력을 검색합니다. 작업의 출력 파일 경로에서 `Read`를 선호하여 더 이상 사용되지 않습니다. ID와 일치하는 작업이 없으면 오류는 실행 중인 백그라운드 에이전트를 ID 및 설명으로 나열합니다. v2.1.203 이전에는 오류가 누락된 ID만 명명했습니다 | 아니오 |
51| `TaskUpdate` | 작업 상태, 종속성, 세부 정보를 업데이트하거나 작업을 삭제합니다 | 아니오 |57| `TaskStop` | ID로 실행 중인 백그라운드 작업을 중지합니다. 또한 [에이전트 팀 팀원](/docs/ko/agent-teams) 또는 에이전트 ID 또는 이름으로 명명된 백그라운드 에이전트를 허용합니다. v2.1.198 이전에는 백그라운드 작업 ID만 허용했습니다. ID와 일치하는 작업이 없으면 오류는 실행 중인 백그라운드 에이전트를 ID 및 설명으로 나열합니다. 다른 에이전트가 생성한 에이전트 포함. v2.1.203 이전에는 오류가 실행 중인 팀원 및 명명된 에이전트를 나열했지만 다른 에이전트가 생성한 백그라운드 에이전트는 나열하지 않았으므로 주 대화에서 식별하거나 중지할 수 없었습니다 | 아니오 |
52| `TodoWrite` | }세션 작업 체크리스트를 관리합니다. v2.1.142부터 기본적으로 비활성화되어 있으며 `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`를 선호합니다. `CLAUDE_CODE_ENABLE_TASKS=0`을 설정하여 다시 활성화합니다 | 아니오 |58| `TaskUpdate` | 작업 상태, 종속성, 세부 정보를 업데이트하거나 작업을 삭제합니다. Claude Code는 [작업 도구 가용성](#task-tool-availability) 아래에 나열된 모델에서 이를 제외합니다. 옵트인하지 않는 한 | 아니오 |
53| `ToolSearch` | [tool search](/docs/ko/mcp#scale-with-mcp-tool-search)가 활성화되었을 때 지연된 도구를 검색하고 로드합니다 | 아니오 |59| `TodoWrite` | 세션 작업 체크리스트를 관리합니다. `TaskCreate`, `TaskGet`, `TaskList` 및 `TaskUpdate`를 선호하여 기본적으로 비활성화됩니다. [작업 추적 도구가 있는 세션](#task-tool-availability)에서 다시 활성화하려면 `CLAUDE_CODE_ENABLE_TASKS=0`을 설정합니다 | 아니오 |
54| `WaitForMcpServers` | 백그라운드에서 여전히 연결 중인 하나 이상의 [MCP 서버](/docs/ko/mcp)를 기다리므로, 요청이 세션을 다시 시작하지 않고도 해당 도구를 사용할 수 있습니다. Claude는 필요한 서버가 아직 연결되지 않았을 때 이를 호출합니다. [tool search](/docs/ko/mcp#scale-with-mcp-tool-search)가 비활성화되었을 때만 나타나며, `ToolSearch`가 활성화되었을 때는 대기를 처리합니다 | 아니오 |60| `ToolSearch` | [도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)이 활성화되어 있을 때 지연된 도구를 검색하고 로드합니다 | 아니오 |
55| `WebFetch` | 지정된 URL에서 콘텐츠를 가져옵니다. [WebFetch 도구 동작](#webfetch-tool-behavior) 참조 | 예 |61| `WaitForMcpServers` | 백그라운드에서 여전히 연결 중인 하나 이상의 [MCP 서버](/docs/ko/mcp)를 기다립니다. 따라서 요청이 세션을 다시 시작하지 않고도 해당 도구를 사용할 수 있습니다. Claude는 필요한 서버가 아직 연결되지 않았을 때 호출합니다. [도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)이 비활성화되어 있을 때만 나타납니다. `ToolSearch`는 활성화되어 있을 때 대기를 처리합니다 | 아니오 |
56| `WebSearch` | 웹 검색을 수행합니다. [WebSearch 도구 동작](#websearch-tool-behavior) 참조 | 예 |62| `WebFetch` | 지정된 URL에서 콘텐츠를 가져옵니다. [WebFetch 도구 동작](#webfetch-tool-behavior)을 참조하세요 | 예 |
57| `Workflow` | [동적 워크플로우](/docs/ko/workflows)를 실행합니다: 백그라운드에서 많은 subagent를 조율하고 하나의 통합된 결과를 반환하는 스크립트입니다 | 예 |63| `WebSearch` | 웹 검색을 수행합니다. [WebSearch 도구 동작](#websearch-tool-behavior)을 참조하세요 | 예 |
58| `Write` | 파일을 생성하거나 덮어씁니다. [Write 도구 동작](#write-tool-behavior) 참조 | 예 |64| `Workflow` | [동적 워크플로우](/docs/ko/workflows)를 실행합니다. 백그라운드에서 많은 서브에이전트를 조율하고 하나의 통합된 결과를 반환하는 스크립트입니다 | 예 |
65| `Write` | 파일을 생성하거나 덮어씁니다. [Write 도구 동작](#write-tool-behavior)을 참조하세요 | 예 |
59 66
60<h2 id="configure-tools-with-permission-rules-and-hooks">67<h2 id="configure-tools-with-permission-rules-and-hooks">
61 권한 규칙 및 hook으로 도구 구성68 권한 규칙 및 훅으로 도구 구성하기
62</h2>69</h2>
63 70
64대부분의 경우 Claude가 이러한 도구를 사용할 시기를 결정하며 Claude와 상호작용할 때 도구 이름을 직접 지정할 필요가 없습니다. 권한 및 기타 구성을 정의할 때 도구 이름을 직접 참조합니다:71대부분의 경우 Claude가 이러한 도구를 사용할 시기를 결정하므로 Claude와 상호작용할 때 도구 이름을 직접 지정할 필요가 없습니다. 권한 및 기타 구성을 정의할 때 도구 이름을 직접 참조합니다:
65 72
66* 설정의 [`permissions.allow` 및 `permissions.deny`](/docs/ko/settings#available-settings) 및 `/permissions` 인터페이스에서73* 설정의 [`permissions.allow`](/docs/ko/settings-reference#permissions-allow) 및 [`permissions.deny`](/docs/ko/settings-reference#permissions-deny)와 `/permissions` 인터페이스에서
67* [CLI 플래그](/docs/ko/cli-reference)의 `--allowedTools` 및 `--disallowedTools`에서74* [`CLI flags`](/docs/ko/cli-reference)의 `--allowedTools` 및 `--disallowedTools`에서
68* Agent SDK의 [`allowedTools` 및 `disallowedTools`](/docs/ko/agent-sdk/permissions#allow-and-deny-rules) 옵션에서75* Agent SDK의 [`allowedTools` 및 `disallowedTools`](/docs/ko/agent-sdk/permissions#allow-and-deny-rules) 옵션에서
69* [subagent의 `tools` 또는 `disallowedTools`](/docs/ko/sub-agents#supported-frontmatter-fields) frontmatter에서76* [subagent의 `tools` 또는 `disallowedTools`](/docs/ko/sub-agents#supported-frontmatter-fields) frontmatter에서
70* [skill의 `allowed-tools`](/docs/ko/skills#frontmatter-reference) frontmatter에서77* [skill의 `allowed-tools`](/docs/ko/skills#frontmatter-reference) frontmatter에서
71* hook의 [`if` 조건](/docs/ko/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field)에서78* hook의 [`if` condition](/docs/ko/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field)에서
72 79
73이들 모두 동일한 규칙 형식인 `ToolName(specifier)`를 허용합니다. specifier는 도구에 따라 다르며, 여러 도구가 형식을 공유합니다:80이 모든 항목은 동일한 규칙 형식인 `ToolName(specifier)`을 허용합니다. specifier는 도구에 따라 다르며, 여러 도구가 형식을 공유합니다:
74 81
75| 규칙 형식 | 적용 대상 | 세부 정보 |82| 규칙 형식 | 적용 대상 | 세부 정보 |
76| :----------------------------- | :------------------------ | :--------------------------------------------------------------- |83| :----------------------------- | :------------------------ | :------------------------------------------------------- |
77| `Bash(npm run *)` | Bash, Monitor | [명령 패턴 매칭](/docs/ko/permissions#bash) |84| `Bash(npm run *)` | Bash, Monitor | [명령 패턴 매칭](/docs/ko/permissions#bash) |
78| `PowerShell(Get-ChildItem *)` | PowerShell | [명령 패턴 매칭](/docs/ko/permissions#powershell) |85| `PowerShell(Get-ChildItem *)` | PowerShell | [명령 패턴 매칭](/docs/ko/permissions#powershell) |
79| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [경로 패턴 매칭](/docs/ko/permissions#read-and-edit) |86| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [경로 패턴 매칭](/docs/ko/permissions#read-and-edit) |
80| `Edit(/src/**)` | Edit, Write, NotebookEdit | [경로 패턴 매칭](/docs/ko/permissions#read-and-edit) |87| `Edit(/src/**)` | Edit, Write, NotebookEdit | [경로 패턴 매칭](/docs/ko/permissions#read-and-edit) |
81| `Skill(deploy *)` | Skill | [Skill 이름 매칭](/docs/ko/skills#restrict-claude%E2%80%99s-skill-access) |88| `Skill(deploy *)` | Skill | [Skill 이름 매칭](/docs/ko/skills#restrict-claude's-skill-access) |
82| `Agent(Explore)` | Agent | [Subagent 타입 매칭](/docs/ko/permissions#agent-subagents) |89| `Agent(Explore)` | Agent | [Subagent 유형 매칭](/docs/ko/permissions#agent-subagents) |
83| `WebFetch(domain:example.com)` | WebFetch | [도메인 매칭](/docs/ko/permissions#webfetch) |90| `WebFetch(domain:example.com)` | WebFetch | [도메인 매칭](/docs/ko/permissions#webfetch) |
84| `WebSearch` | WebSearch | specifier 없음; 도구 전체를 허용하거나 거부합니다 |91| `WebSearch` | WebSearch | specifier 없음; 도구 전체를 허용하거나 거부합니다 |
85 92
86`ExitPlanMode` 또는 `ShareOnboardingGuide`와 같이 여기에 나열되지 않은 도구는 specifier 없이 도구 이름만 허용합니다.93여기에 나열되지 않은 도구(예: `ExitPlanMode` 또는 `ShareOnboardingGuide`)는 specifier 없이 도구 이름만 허용합니다.
87 94
88`Edit(...)` allow 규칙은 동일한 경로에 대한 읽기 접근도 부여하므로, 일치하는 `Read(...)` 규칙이 필요하지 않습니다. `Read(...)` deny 규칙은 새 파일을 만드는 것을 포함하여 동일한 경로에서 Edit 도구도 차단합니다. 편집에는 결과를 다시 읽어야 하기 때문입니다. 편집에 대한 `Read` deny 확인에는 Claude Code v2.1.208 이상이 필요합니다.95`Edit(...)` allow 규칙은 동일한 경로에 대한 읽기 액세스도 부여하므로 일치하는 `Read(...)` 규칙이 필요하지 않습니다. `Read(...)` deny 규칙은 동일한 경로의 Edit 및 Write 도구도 차단하며, 새 파일을 만드는 것도 포함됩니다. 두 도구 모두 Claude가 읽을 수 있어야 하는 콘텐츠를 변경하기 때문입니다. `Read` deny 체크는 편집 시 Claude Code v2.1.208 이상이 필요하며, 쓰기 시 v2.1.228 이상이 필요합니다.
89 96
90Hook `matcher` 필드는 괄호로 묶인 규칙 형식이 아닌 도구 이름만 사용합니다. 매칭 규칙은 [matcher 패턴](/docs/ko/hooks#matcher-patterns)을 참조합니다. 각 도구가 hook의 `tool_input`에 전달하는 필드 이름은 [PreToolUse 입력 참조](/docs/ko/hooks#pretooluse-input)를 참조합니다.97Hook `matcher` 필드는 괄호로 묶인 규칙 형식이 아닌 도구 이름만 사용합니다. 매칭 규칙은 [matcher patterns](/docs/ko/hooks#matcher-patterns)을 참조하세요. 각 도구가 hook의 `tool_input`에 전달하는 필드 이름은 [PreToolUse input reference](/docs/ko/hooks#pretooluse-input)를 참조하세요.
91 98
92<h2 id="agent-tool-behavior">99<h2 id="agent-tool-behavior">
93 Agent 도구 동작100 에이전트 도구 동작
94</h2>101</h2>
95 102
96Agent 도구는 별도의 context window에서 subagent를 생성합니다. Subagent는 자신의 작업을 자율적으로 처리한 다음 단일 텍스트 결과를 부모 대화에 반환합니다. 부모는 subagent의 중간 도구 호출이나 출력을 보지 못하고, 최종 결과만 봅니다.103에이전트 도구는 별도의 컨텍스트 윈도우에서 서브에이전트를 생성합니다. 서브에이전트는 자율적으로 작업을 진행한 후 부모 대화에 단일 텍스트 결과를 반환합니다. 부모는 서브에이전트의 중간 도구 호출이나 출력을 보지 못하고 최종 결과만 봅니다. [에이전트 팀](/docs/ko/agent-teams)이 활성화된 경우, `name`을 포함하는 호출은 [팀원](/docs/ko/agent-teams#how-claude-starts-agent-teams)을 시작할 수 있으며, 이는 결과를 반환하는 대신 팀 메시지를 통해 보고합니다.
97 104
98Subagent가 실행하는 턴의 수를 제한하려면 [subagent 정의](/docs/ko/sub-agents#supported-frontmatter-fields)에서 `maxTurns`를 설정합니다.105서브에이전트가 실행하는 턴의 수를 제한하려면 [서브에이전트 정의](/docs/ko/sub-agents#supported-frontmatter-fields)에서 `maxTurns`를 설정합니다. 서브에이전트가 제한에 도달하면 Claude Code는 반환된 결과를 부분 출력으로 표시하며, Claude는 [서브에이전트를 재개](/docs/ko/sub-agents#resume-subagents)하여 계속할 수 있습니다.
99 106
100동일한 Agent 도구는 fork 모드가 활성화되었을 때 [forked subagent](/docs/ko/sub-agents#fork-the-current-conversation)도 시작합니다. Fork는 새로 시작하는 대신 전체 부모 대화를 상속하고, 항상 백그라운드에서 실행되며, 여전히 터미널에서 권한 프롬프트를 표시합니다. 이 섹션의 나머지 부분은 명명된 subagent를 설명합니다.107동일한 에이전트 도구는 [포크 모드](/docs/ko/sub-agents#turn-fork-mode-on-or-off)가 켜져 있는 곳에서 [포크된 서브에이전트](/docs/ko/sub-agents#fork-the-current-conversation)도 시작합니다. 포크는 새로 시작하는 대신 전체 부모 대화를 상속하고, [포그라운드에 유지되는 경우](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 제외하고 백그라운드에서 실행되며, 여전히 터미널에서 권한 프롬프트를 표시합니다. 이 섹션의 나머지 부분은 포크되지 않은 서브에이전트를 설명합니다.
101 108
102명명된 subagent가 사용할 수 있는 도구는 [subagent 정의](/docs/ko/sub-agents)의 `tools` 및 `disallowedTools` 필드에 따라 다릅니다:109포크되지 않은 서브에이전트가 사용할 수 있는 도구는 [서브에이전트 정의](/docs/ko/sub-agents)의 `tools` 및 `disallowedTools` 필드에 따라 달라집니다:
103 110
104* **필드가 설정되지 않음**: subagent는 부모가 사용 가능한 모든 도구를 상속합니다.111* **두 필드 모두 설정되지 않음**: 서브에이전트는 [서브에이전트에서 사용 가능한 모든 도구](/docs/ko/sub-agents#available-tools)를 상속합니다.
105* **`tools`만**: subagent는 나열된 도구만 가져옵니다.112* **`tools`만 설정됨**: 서브에이전트는 나열된 도구만 가져옵니다.
106* **`disallowedTools`만**: subagent는 나열된 도구를 제외한 모든 부모 도구를 가져옵니다.113* **`disallowedTools`만 설정됨**: 서브에이전트는 나열된 도구를 제외한 모든 부모 도구를 가져옵니다.
107* **둘 다 설정됨**: `disallowedTools`가 우선합니다. 둘 다에 나열된 도구는 제거됩니다.114* **둘 다 설정됨**: `disallowedTools`가 우선합니다. 둘 다에 나열된 도구는 제거됩니다.
108 115
109Subagent의 `tools` 목록이 전혀 도구로 해석되지 않는 경우, 예를 들어 모든 항목이 철자가 잘못되었거나 subagent에서 사용할 수 없는 도구의 이름을 지정하는 경우, Agent 도구는 subagent를 시작하는 대신 해당 항목을 나열하는 오류를 반환합니다. v2.1.208 이전에는 subagent가 도구 없이 시작되었고 빈 결과나 혼란스러운 결과를 반환할 수 있었습니다.116모든 경우에 해결된 집합은 [서브에이전트에서 사용 가능한 도구](/docs/ko/sub-agents#available-tools)로 제한됩니다. 서브에이전트에서 사용할 수 없는 도구는 `tools`에 나열되어 있어도 절대 부여되지 않습니다.
117
118서브에이전트의 `tools` 목록의 모든 항목이 사용 가능한 도구와 일치하지 못하면 에이전트 도구는 일반적으로 서브에이전트를 시작하는 대신 항목의 이름을 지정하는 오류를 반환합니다. [에이전트가 0개의 도구로 생성됨](/docs/ko/errors#agent-would-be-spawned-with-zero-tools)에서 메시지와 각 항목을 수정하는 방법을 참조하세요.
119
120서브에이전트를 시작하는 것 자체는 권한을 요청하지 않습니다. Claude Code는 서브에이전트의 자체 도구 호출을 실행할 때 권한 규칙에 대해 확인합니다.
121
122서브에이전트의 권한 프롬프트를 보는 위치는 포그라운드 또는 백그라운드에서 실행되는지 여부에 따라 달라집니다. Claude Code는 기본적으로 서브에이전트를 백그라운드에서 실행하며, [포그라운드에서 실행되는 경우](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)는 제외합니다.
123
124* **포그라운드 서브에이전트**는 각 도구 호출이 발생하는 순간 주 대화에서 볼 수 있는 동일한 권한 프롬프트를 표시합니다.
125* **백그라운드 서브에이전트** v2.1.186부터 주 세션에서 권한 프롬프트를 표시합니다. 프롬프트는 어느 서브에이전트가 요청하는지 이름을 지정하며, Esc를 누르면 서브에이전트를 중지하지 않고 해당 도구 호출 하나만 거부합니다. v2.1.186 이전에는 백그라운드 서브에이전트가 프롬프트를 표시할 수 있는 모든 도구 호출을 자동으로 거부하고 해당 도구 없이 계속했습니다.
126
127[서브에이전트가 도달할 수 있는 범위를 제한](/docs/ko/sub-agents#control-subagent-capabilities)하려면 먼저 `tools` 필드를 좁혀서(예: Bash를 목록에서 제외) 또는 설정에서 거부 규칙을 설정합니다.
128
129<h2 id="askuserquestion-tool-behavior">
130 AskUserQuestion 도구 동작
131</h2>
132
133Claude는 결정이나 명확화가 필요할 때 `AskUserQuestion`을 사용하여 객관식 질문을 제시합니다. 옵션을 선택하거나 `Other` 행 또는 메모 필드를 통해 직접 텍스트를 입력하여 답변합니다.
110 134
111Subagent를 시작하는 것 자체는 권한을 요청하지 않습니다. Claude Code는 subagent의 자체 도구 호출을 실행될 때 권한 규칙에 대해 확인합니다.135직접 텍스트를 입력하여 답변하면, Claude Code는 Claude가 작성한 내용을 따르도록 중립적인 표현으로 답변을 전달하며, 먼저 대기하거나 설명해 달라는 요청을 포함합니다.
136
137<h3 id="question-auto-continue-timeout">
138 질문 자동 계속 타임아웃
139</h3>
112 140
113v2.1.198부터 subagent는 기본적으로 백그라운드에서 실행됩니다. Claude는 계속하기 전에 결과가 필요할 때 포그라운드에서 하나를 실행합니다.141질문은 답변할 때까지 열려 있습니다. 답변하지 않은 질문이 결국 닫혀서 Claude가 사용자 없이 계속 진행되도록 하려면, [`askUserQuestionTimeout`](/docs/ko/settings-reference#askuserquestiontimeout) 설정을 `60s`, `5m`, 또는 `10m`으로 설정합니다. 사용자 `settings.json`에서 또는 `/config`의 **Question auto-continue timeout** 행에서 설정할 수 있습니다.
114 142
115* **포그라운드 subagent**는 각 도구 호출이 발생하는 순간 주 대화에서 보게 될 동일한 권한 프롬프트를 표시합니다.143질문이 입력 없이 그 시간 동안 유지되면, 대화 상자가 자동으로 닫힙니다. 이미 선택한 옵션을 제출하고 Claude에게 사용자가 키보드에서 떨어져 있을 수 있다고 알려주므로, Claude는 자신의 판단으로 진행하고 나중에 다시 질문할 수 있습니다. 마지막 20초 동안 카운트다운이 표시됩니다. 아무 키나 눌러 타이머를 다시 시작합니다. 포커스를 보고하는 터미널에서는 창으로 전환하면 타이머도 다시 시작됩니다.
116* **백그라운드 subagent** 는 v2.1.186부터 주 세션에서 권한 프롬프트를 표시합니다. 프롬프트는 어느 subagent가 요청하는지 표시하며, Esc를 누르면 subagent를 중지하지 않고 해당 도구 호출만 거부합니다. v2.1.186 이전에는 백그라운드 subagent가 그렇지 않으면 프롬프트를 표시할 모든 도구 호출을 자동으로 거부하고 해당 도구 없이 계속 진행했습니다.
117 144
118Subagent가 먼저 도달할 수 있는 것을 제한하려면 `tools` 필드를 좁히고, Bash를 목록에서 제외하거나, [Subagent 기능 제어](/docs/ko/sub-agents#control-subagent-capabilities)에서 설명한 대로 설정에서 거부 규칙을 설정합니다. 포그라운드와 백그라운드 중 선택에 대한 자세한 내용은 [Subagent를 포그라운드 또는 백그라운드에서 실행](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)을 참조합니다.145타임아웃은 `AskUserQuestion`의 객관식 질문에만 적용됩니다. 계획 승인을 포함한 권한 프롬프트는 유휴 상태에서 자동으로 해결되지 않습니다.
119 146
120<h2 id="bash-tool-behavior">147<h2 id="bash-tool-behavior">
121 Bash 도구 동작148 Bash 도구 동작
122</h2>149</h2>
123 150
124Bash 도구는 다음의 지속성 동작으로 각 명령을 별도의 프로세스에서 실행합니다:151Bash 도구는 각 명령을 별도의 프로세스에서 실행합니다.
125 152
126* Claude가 주 세션에서 `cd`를 실행할 때, 새로운 작업 디렉토리는 프로젝트 디렉토리 내에 머물러 있거나 `--add-dir`, `/add-dir`, 또는 설정의 `additionalDirectories`로 추가한 [추가 작업 디렉토리](/docs/ko/permissions#working-directories) 내에 머물러 있는 한 이후 Bash 명령으로 이월됩니다. Subagent 세션은 절대 작업 디렉토리 변경을 이월하지 않습니다.153<h3 id="what-persists-between-commands">
154 명령 간에 유지되는 항목
155</h3>
156
157* Claude가 주 세션에서 `cd`를 실행할 때, 새로운 작업 디렉토리는 프로젝트 디렉토리 내에 있거나 `--add-dir`, `/add-dir` 또는 설정의 `additionalDirectories`로 추가한 [추가 작업 디렉토리](/docs/ko/permissions#working-directories) 내에 있는 한 이후의 Bash 명령으로 이월됩니다. 서브에이전트 세션은 작업 디렉토리 변경을 절대 이월하지 않습니다.
127 * `cd`가 해당 디렉토리 외부로 이동하면, Claude Code는 프로젝트 디렉토리로 재설정하고 도구 결과에 `Shell cwd was reset to <dir>`을 추가합니다.158 * `cd`가 해당 디렉토리 외부로 이동하면, Claude Code는 프로젝트 디렉토리로 재설정하고 도구 결과에 `Shell cwd was reset to <dir>`을 추가합니다.
128 * 모든 Bash 명령이 프로젝트 디렉토리에서 시작하도록 이 이월을 비활성화하려면 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`을 설정합니다.159 * 모든 Bash 명령이 프로젝트 디렉토리에서 시작하도록 이월을 비활성화하려면 `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`을 설정합니다.
129* 환경 변수는 지속되지 않습니다. 한 명령의 `export`는 다음 명령에서 사용할 수 없습니다.160* 환경 변수는 유지되지 않습니다. 한 명령의 `export`는 다음 명령에서 사용할 수 없습니다.
130* 셸 시작 파일에 정의된 별칭 및 셸 함수를 사용할 수 있습니다. 세션 시작 시, Claude Code는 셸에 따라 `~/.zshrc`, `~/.bashrc`, 또는 `~/.profile`을 소싱하고, 결과 별칭, 함수 및 셸 옵션을 캡처하여 모든 Bash 명령에 적용합니다.161* 셸 시작 파일에 정의된 별칭과 셸 함수를 사용할 수 있습니다. 세션 시작 시, Claude Code는 셸에 따라 `~/.zshrc`, `~/.bashrc` 또는 `~/.profile`을 소싱하고, 결과 별칭, 함수 및 셸 옵션을 캡처한 후 모든 Bash 명령에 적용합니다.
162
163Claude Code를 시작하기 전에 virtualenv 또는 conda 환경을 활성화합니다. 환경 변수가 Bash 명령 간에 유지되도록 하려면, Claude Code를 시작하기 전에 [`CLAUDE_ENV_FILE`](/docs/ko/env-vars)을 셸 스크립트로 설정하거나 [SessionStart 훅](/docs/ko/hooks#persist-environment-variables)을 사용하여 동적으로 채웁니다.
164
165<h3 id="timeout-and-output-limits">
166 타임아웃 및 출력 제한
167</h3>
168
169각 명령은 타임아웃 하에서 실행되며, Claude가 관리합니다. 명령에 기본값보다 더 오래 필요할 때, 해당 호출로 `timeout` 매개변수를 전달합니다. 명령별 타임아웃을 설정하지 않습니다. 두 개의 [환경 변수](/docs/ko/env-vars)가 Claude가 받는 것을 제한합니다:
170
171* `BASH_DEFAULT_TIMEOUT_MS` — Claude가 타임아웃을 전달하지 않을 때의 기본값입니다. 기본값은 2분입니다.
172* `BASH_MAX_TIMEOUT_MS` — 기본값으로, Claude가 요청하는 것을 제한하는 상한을 설정합니다. 유효한 상한은 둘 중 더 큰 값이며, 기본값은 10분입니다.
173
174<h4 id="output-limits">
175 출력 제한
176</h4>
177
178Claude Code는 명령이 실행되는 동안 명령의 출력을 작업 파일로 스트리밍합니다. 출력이 5GB를 초과하는 명령은 중단됩니다. 명령이 완료되면, Claude Code는 아래에 설명된 읽기 창에서 해당 파일의 출력을 다시 읽습니다. 출력이 Claude에 인라인으로 도달하는 양은 Claude Code가 결과를 실패로 처리하는지 여부에 따라 달라집니다:
179
180| 결과 | Claude가 받는 것 |
181| :- | :------------------------------------------------------------------------------------------------------------------------ |
182| 유효 | 기본값으로 대략 30,000자까지 인라인입니다. 그 이상은 세션 디렉토리에 저장되고 64MiB를 초과하여 잘린 파일의 경로와 시작 부분의 짧은 미리보기이며, Claude는 나머지가 필요할 때 파일을 읽거나 검색합니다. |
183| 실패 | 대략 10,000자까지 인라인입니다. 그 이상은 읽기 창에서 잘린 해당 크기의 머리-꼬리 발췌이며, 파일 경로는 없습니다. |
184
185종료 코드 1로 끝나는 명령은 Claude Code가 해당 명령에 대해 종료 코드 1을 양성 결과로 인식할 때만 Bash 도구에 대한 유효한 결과로 계산됩니다: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test` 및 `[`, 그리고 `git diff`와 `git grep`. 종료 코드 1이 양성 정보 결과인 경우에도 다른 모든 명령은 실패로 계산됩니다: `pgrep`과 `jq -e`의 일치 항목 없음, `cmp`의 파일 차이.
186
187[`BASH_MAX_OUTPUT_LENGTH`](/docs/ko/env-vars)는 Claude Code가 작업 파일에서 명령의 결과로 다시 읽는 출력의 문자 수를 설정합니다. 기본값은 30,000자이며, 최대 150,000자까지입니다. 명령이 정기적으로 해당 창을 초과할 때 이를 높입니다. 예를 들어 자세한 빌드 또는 전체 테스트 스위트 로그입니다. 이를 높이면 읽기 창이 확대되며, 이는 실패한 명령의 발췌가 잘리는 창이기도 합니다. 인라인 상한을 높이지 않습니다. 인라인 상한을 초과하는 유효한 결과는 이 변수와 관계없이 파일 경로와 미리보기로 도착합니다.
188
189유효한 결과의 얼마나 많은 부분을 Claude가 인라인으로 받는지 변경하려면, 대신 [`bashOutputMaxChars`](/docs/ko/settings-reference#bashoutputmaxchars) 설정을 최대 128,000자까지 설정합니다. 인라인 상한과 읽기 창을 함께 크기 조정하며, Claude Code는 `BASH_MAX_OUTPUT_LENGTH`를 무시합니다. Claude Code v2.1.261 이상이 필요합니다.
190
191<h3 id="background-commands">
192 백그라운드 명령
193</h3>
194
195개발 서버 또는 감시 빌드와 같은 장기 실행 프로세스의 경우, Claude는 `run_in_background: true`를 설정하여 명령을 백그라운드 작업으로 시작하고 실행 중인 동안 계속 작업할 수 있습니다. `/tasks`로 백그라운드 작업을 나열하고 중지합니다. 거기서 또는 데스크톱 앱과 같은 연결된 클라이언트에서 중지한 후, Claude는 대기하지 않고 계속 진행합니다. 서브에이전트가 명령을 시작한 경우, 해당 서브에이전트가 계속 진행합니다.
131 196
132Claude Code를 시작하기 전에 virtualenv 또는 conda 환경을 활성화합니다. Bash 명령 전체에서 환경 변수를 지속하려면 Claude Code를 시작하기 전에 [`CLAUDE_ENV_FILE`](/docs/ko/env-vars)을 셸 스크립트로 설정하거나, [SessionStart hook](/docs/ko/hooks#persist-environment-variables)을 사용하여 동적으로 채웁니다.197[포그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)가 시작한 명령은 해당 서브에이전트가 최종 응답을 제공할 때 중지됩니다. 주 대화 또는 백그라운드 서브에이전트가 시작한 명령은 최종 응답 후에도 계속 실행됩니다. `-p` 플래그가 있는 비대화형 모드에서, [백그라운드 명령은 실행의 최종 결과 직후에 종료됩니다](/docs/ko/headless#background-tasks-at-exit).
133 198
134두 가지 제한이 각 명령을 제한합니다:199명령이 완료되지 않고 타임아웃에 도달하면, Claude Code는 중지하지 않고 백그라운드로 이동합니다. Claude는 명령이 계속되는 동안 계속 작업합니다. Claude Code는 이동된 명령에 다른 백그라운드 명령과 동일한 수명 규칙을 적용하므로, 포그라운드 서브에이전트의 명령을 해당 서브에이전트의 최종 응답에서 여전히 종료합니다. [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/ko/env-vars#variables)을 설정하면 자동 백그라운드 처리 및 나머지 백그라운드 작업 기능을 비활성화합니다.
135 200
136* **Timeout**: 기본값은 2분입니다. Claude는 `timeout` 매개변수로 명령당 최대 10분을 요청할 수 있습니다. [`BASH_DEFAULT_TIMEOUT_MS` 및 `BASH_MAX_TIMEOUT_MS`](/docs/ko/env-vars)로 기본값 및 상한을 재정의합니다.201Claude Code는 세 가지 종류의 명령을 절대 자동 백그라운드 처리하지 않습니다. 대신 타임아웃에서 중지합니다:
137* **출력 길이**: 기본값은 30,000자입니다. 명령이 그 이상을 생성하면, Claude Code는 전체 출력을 세션 디렉토리의 파일에 저장하고 Claude에 파일 경로와 시작 부분의 짧은 미리보기를 제공합니다. Claude는 나머지가 필요할 때 해당 파일을 읽거나 검색합니다. [`BASH_MAX_OUTPUT_LENGTH`](/docs/ko/env-vars)로 제한을 높입니다. 최대 150,000자까지 가능합니다.
138 202
139dev 서버 또는 watch 빌드와 같은 장기 실행 프로세스의 경우, Claude는 `run_in_background: true`를 설정하여 명령을 백그라운드 작업으로 시작하고 실행되는 동안 계속 작업할 수 있습니다. `/tasks`로 백그라운드 작업을 나열하고 중지합니다. 비대화형 모드에서 `-p` 플래그를 사용하면, [백그라운드 작업은 실행의 최종 결과 직후에 종료됩니다](/docs/ko/headless#background-tasks-at-exit).203* `sleep`으로 시작하는 명령입니다.
204* 어디든지 `git`을 실행하는 명령입니다.
205* Claude Code가 완전히 단순 명령으로 파싱할 수 없는 복합 명령입니다. Claude Code는 `${VAR}`과 같은 매개변수 확장을 파싱 불가능으로 처리하므로, `; exit "${PIPESTATUS[0]}"`로 끝나는 명령을 타임아웃에서 중지합니다. 해당 명령의 나머지가 파싱되더라도 말입니다.
206
207백그라운드로 이동된 명령의 결과는 발생한 일을 나타냅니다:
208
209* 타임아웃이 이동을 트리거할 때, 결과는 명시적으로 보고합니다: `Command did not complete within its 120s timeout and was moved to the background`, 초는 적용된 타임아웃과 일치하며, 작업 ID와 출력이 기록되는 파일의 경로가 뒤따릅니다.
210* 백그라운드로 이동되는 명령 내의 `cd`, `pushd`, `popd` 또는 `chdir`은 절대 이월되지 않습니다. 결과는 `Session cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands.`를 나타내므로, Claude는 발생하지 않은 디렉토리 변경에 대해 작동하지 않습니다.
211
212<h3 id="memory-limit-on-linux-and-wsl">
213 Linux 및 WSL의 메모리 제한
214</h3>
215
216Linux 및 WSL에서, [`CLAUDE_CODE_TOOL_MEMORY_LIMIT`](/docs/ko/env-vars#variables)을 `4G`와 같은 크기로 설정하여 Bash, PowerShell 및 [Monitor](#monitor-tool) 도구 명령이 사용할 수 있는 메모리를 제한하므로, 하나의 폭주 빌드가 세션의 나머지 부분이 필요한 메모리를 차지할 수 없습니다. Claude Code v2.1.233 이상이 필요합니다. v2.1.246 이전에는 Monitor 도구 명령이 상한 외부에서 실행되었습니다.
217
218* 크기를 바이트 수 또는 `K`, `M`, `G` 또는 `T` 접미사가 있는 것으로 작성합니다. 상한을 끄려면 `0`, `off`, `false`, `no` 또는 `none`을 설정합니다. Claude Code는 `4e9`와 같이 크기로 읽을 수 없는 다른 값을 무시합니다.
219* Claude Code는 각 명령에 대해 별도로가 아니라 하나의 상한에 대해 세션의 모든 Bash, PowerShell 및 Monitor 명령을 계산합니다.
220* Claude Code는 메모리 cgroup으로 상한을 적용합니다. cgroup을 설정할 수 없으면, 명령은 상한 없이 실행되며, `claude --debug`의 디버그 로그는 이유를 나타냅니다.
221* Claude Code가 시작한 첫 번째 프로세스가 상한을 켜거나, 오프 값 또는 실패한 cgroup 설정으로 인해 꺼진 후, Claude Code는 다시 시작할 때까지 해당 결과를 유지합니다. 변경되거나 제거된 값 또는 고정된 설정을 적용하려면 `claude`를 다시 시작합니다.
222* 명령이 상한 아래에 머물 수 없으면, 커널이 명령을 중단하며, 결과의 아무것도 상한을 명명하지 않습니다.
223
224Claude Code는 또한 시작하는 다른 종류의 프로세스를 동일한 제한에 대해 계산할 수 있습니다. [`CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE`](/docs/ko/env-vars#variables)를 상한에서 제외할 종류의 쉼표로 구분된 목록으로 설정합니다. Claude Code는 목록에 없는 모든 종류에 상한을 적용합니다. 모든 종류를 제한하려면 `none`으로 설정하거나, Bash, PowerShell 및 Monitor 도구 명령만 제한하려면 `all-new`로 설정합니다. Claude Code v2.1.246 이상이 필요합니다. 명명할 수 있는 종류:
225
226* `mcp`: 로컬 [MCP 서버](/docs/ko/mcp)
227* `lsp`: [언어 서버](#lsp-tool-behavior)
228* `hooks`: [훅](/docs/ko/hooks) 명령
229* `plugin`: [플러그인](/docs/ko/plugins)이 실행하는 명령
230* `helper`: Claude Code의 자체 도우미 명령, 예를 들어 `git`
231* `agent`: 자식 Claude Code 프로세스, 예를 들어 [에이전트 팀원](/docs/ko/agent-teams)
232
233나열하는 것이 무엇이든, 이러한 규칙이 적용됩니다:
234
235* **알 수 없는 이름**: Claude Code는 인식하지 못하는 이름을 무시합니다.
236* **Bash, PowerShell 및 Monitor**: Claude Code는 나열하는 것이 무엇이든 Bash, PowerShell 및 Monitor 도구 명령을 상한 아래에 유지합니다.
237* **변수 설정 해제**: Claude Code는 Anthropic이 서버에서 제공하는 구성에서 다른 제한된 종류의 집합을 가져오며, 해당 집합은 시간이 지남에 따라 변할 수 있으므로, 변경되지 않는 집합이 필요할 때 변수를 설정합니다.
238* **권한 게이팅 훅**: 모든 종류가 제한되더라도, Claude Code는 작업을 차단하거나 결과를 변경할 수 있는 훅과 해당 훅이 호출하는 모든 MCP 서버를 상한에서 제외하므로, 커널이 권한 게이팅 훅을 중단하는 것이 차단하는 작업을 허용할 수 없습니다.
140 239
141<h2 id="edit-tool-behavior">240<h2 id="edit-tool-behavior">
142 Edit 도구 동작241 Edit 도구 동작
143</h2>242</h2>
144 243
145Edit 도구는 정확한 문자열 교체를 수행합니다. `old_string`과 `new_string`을 가져와 첫 번째를 두 번째로 교체합니다. 정규식이나 fuzzy 매칭을 사용하지 않습니다.244Edit 도구는 정확한 문자열 교체를 수행합니다. `old_string`과 `new_string`을 받아 첫 번째를 두 번째로 교체합니다. 정규식이나 유사 일치를 사용하지 않습니다.
245
246편집을 적용하기 위해 세 가지 검사를 통과해야 합니다. 그 전에, [`Read` 거부 규칙](/docs/ko/permissions#tool-specific-permission-rules)과 일치하는 경로는 거부되며, 여기에 새 파일을 만드는 것도 포함됩니다. 거부는 Claude Code v2.1.208 이상이 필요합니다.
146 247
147편집이 적용되려면 세 가지 확인이 통과해야 합니다. 이들 중 어느 것이든 먼저, [`Read` 거부 규칙](/docs/ko/permissions#tool-specific-permission-rules)과 일치하는 경로는 거부되며, 여기에 새 파일을 만드는 것도 포함됩니다. 거부는 Claude Code v2.1.208 이상이 필요합니다.248* **편집 전 읽기**: Claude는 편집하기 전에 현재 대화에서 파일을 읽으며, [`PARTIAL view` 공지](#read-tool-behavior)로 단축된 읽기는 계산되지 않습니다. Claude Opus 4.6, Claude Haiku 4.5 및 이전 모델은 항상 읽기를 요구합니다. 최신 모델은 읽기가 권한 프롬프트를 필요로 하지 않고 Read 도구를 사용할 수 있을 때 읽지 않은 파일을 편집할 수 있습니다.
249* **일치**: `old_string`은 파일에 정확히 작성된 대로 나타나야 합니다. 공백이나 들여쓰기의 단 한 글자 차이도 일치하지 않기에 충분합니다.
250* **고유성**: `old_string`은 정확히 한 번 나타나야 합니다. 두 번 이상 나타날 때, Claude는 한 번의 발생을 고정하기에 충분한 주변 컨텍스트가 있는 더 긴 문자열을 제공하거나, `replace_all: true`를 설정하여 모두 교체합니다.
148 251
149* **편집 전 읽기**: Claude는 현재 대화에서 파일을 읽었어야 하며, [`PARTIAL view` 공지](#read-tool-behavior)로 단축된 읽기는 계산되지 않습니다. Claude Opus 4.6, Claude Haiku 4.5 및 이전 모델은 항상 읽기를 요구합니다. 최신 모델은 읽기가 권한 프롬프트를 필요로 하지 않을 때 읽지 않은 파일을 편집할 수 있으며 Read 도구를 사용할 수 있습니다.252Claude가 마지막으로 읽은 후 디스크에서 변경된 파일은 `old_string`이 현재 콘텐츠와 정확히 일치하고 명확하며 Claude Code가 프롬프트 없이 파일을 읽을 수 있을 때 여전히 편집할 수 있습니다. 파일의 현재 콘텐츠와 일치하면 이것이 안전하게 유지되며, 결과는 파일이 다른 변경 사항을 포함하고 있음을 기록하므로 Claude는 주변 콘텐츠에 따라 달라지는 편집 전에 다시 읽습니다. 다른 경우, 예를 들어 오래된 `old_string` 또는 `replace_all` 없이 두 번 이상 일치하는 경우, Claude는 편집하기 전에 파일을 다시 읽습니다. 읽지 않은 파일 및 변경된 파일의 완화된 처리는 Claude Code v2.1.208 이상이 필요합니다. 그 전에는 Claude Code가 대화에서 읽지 않았거나 읽은 후 디스크에서 변경된 파일에 대한 모든 편집을 거부했습니다.
150* **매칭**: `old_string`은 파일에 정확히 작성된 대로 나타나야 합니다. 공백이나 들여쓰기의 단일 문자 차이도 미스하기에 충분합니다.
151* **고유성**: `old_string`은 정확히 한 번 나타나야 합니다. 한 번 이상 나타나면, Claude는 한 발생을 고정하기에 충분한 주변 컨텍스트가 있는 더 긴 문자열을 제공하거나, `replace_all: true`를 설정하여 모두 교체합니다.
152 253
153Claude가 마지막으로 읽은 후 디스크에서 변경된 파일도 `old_string`이 현재 콘텐츠와 정확히 일치하고 명확하게 일치할 때 편집할 수 있으며 Claude Code가 프롬프트 없이 파일을 읽을 수 있습니다. 파일의 현재 콘텐츠와 일치하면 이것이 안전하게 유지되며, 결과는 파일이 다른 변경 사항을 포함하고 있음을 기록하므로 Claude는 주변 콘텐츠에 따라 다른 편집 전에 다시 읽습니다. 다른 경우, 예를 들어 오래된 `old_string` 또는 `replace_all` 없이 한 번 이상 일치하는 경우, Claude는 편집 전에 파일을 다시 읽습니다. 읽지 않은 파일과 변경된 파일의 완화된 처리는 Claude Code v2.1.208 이상이 필요합니다. 그 이전에는 Claude Code가 대화에서 읽지 않았거나 읽은 후 디스크에서 변경된 파일에 대한 모든 편집을 거부했습니다.254Bash로 파일을 보는 것은 명령이 `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep` 또는 `rg`일 때 단일 파일에 대해 파이프나 리디렉션이 없을 때 편집 전 읽기 요구 사항을 충족합니다. 파이프된 출력 및 기타 Bash 명령은 편집 전 읽기 검사에 계산되지 않습니다.
255
256Bash로 파일을 보는 것은 권한이 아닌 편집 적격성에만 영향을 미칩니다. [Read 및 Edit 권한 규칙](/docs/ko/permissions#read-and-edit)에서 `Read` 및 `Edit` 거부 규칙이 적용되는 Bash 명령을 확인하십시오.
257
258<h2 id="endconversation-tool-behavior">
259 EndConversation 도구 동작
260</h2>
154 261
155Bash로 파일을 보는 것도 명령이 단일 파일에 대한 `cat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, 또는 `fgrep`일 때 파이프나 리다이렉트가 없으면 편집 전 읽기 요구사항을 만족합니다. 파이프된 출력과 다른 Bash 명령은 편집 전 읽기 확인에 계산되지 않습니다.262EndConversation 도구는 현재 세션을 종료합니다. Claude는 두 가지 상황에서만 이를 사용합니다:
156 263
157이는 편집 적격성에만 영향을 미치며, 권한에는 영향을 미치지 않습니다. [Read 및 Edit 거부 규칙](/docs/ko/permissions#tool-specific-permission-rules)은 Claude Code가 `cat`, `head`, `tail`, `sed`, 및 `grep`과 같이 Bash에서 인식하는 파일 명령에도 적용되지만, 파일을 간접적으로 읽거나 쓰는 Python 또는 Node 스크립트와 같은 임의의 하위 프로세스에는 적용되지 않습니다. 거부 규칙에 대해 인식되는 명령 집합은 위의 편집 전 읽기 목록과 동일하지 않습니다. 예를 들어, `egrep`과 `fgrep`은 편집 전 읽기에 계산되지만 Read 거부 규칙에 대해 확인되지 않습니다. 모든 프로세스를 포함하는 OS 수준 적용을 위해 [sandbox를 활성화](/docs/ko/sandboxing)합니다.264* 지속적인 학대적 입력에 대한 최후의 수단으로, 대화를 다시 방향 지으려는 시도가 실패하고 이전 메시지에서 명확한 경고를 한 후
265* 도구 시연을 명시적으로 요청하고 세션을 종료하고 싶다는 것을 확인할 때
266
267일반적인 좌절감, 욕설, 또는 작업이 잘못되는 것은 해당하지 않으며, 유해한 콘텐츠 요청도 마찬가지입니다. Claude는 세션을 종료하는 대신 이를 거절합니다. Claude Code는 claude.ai와 동일한 접근 방식을 따르며, [드물게 채팅의 일부를 종료](https://www.anthropic.com/research/end-subset-conversations)할 수 있습니다.
268
269Claude가 대화형 세션을 종료한 후 세션이 잠깁니다. 새로운 프롬프트와 대부분의 명령은 `Claude ended this conversation. Start a new session (or /clear) to continue.`를 반환하며, `/clear`, `/resume`, `/help`, `/exit`, `/feedback`만 계속 실행됩니다. Claude Code는 세션의 트랜스크립트에 종료를 기록하므로, 종료된 세션을 재개하면 잠금이 복원됩니다. 세션의 기록은 삭제되지 않습니다.
270
271[비대화형 모드](/docs/ko/headless)에서 `-p` 플래그를 사용하여 종료된 세션을 재개하면 오류가 발생하고 코드 1로 종료되므로, 스크립트는 종료된 실행을 성공으로 읽지 않습니다.
272
273도구는 권한을 묻지 않으며, [PreToolUse 훅](/docs/ko/hooks#pretooluse)은 이에 대해 실행되지 않습니다. 다른 도구가 남아 있는 동안 이를 차단할 수도 없습니다: `EndConversation`을 명명하는 [거부 및 요청 규칙](/docs/ko/permissions#tool-specific-permission-rules)은 효과가 없으며, `--disallowedTools`도 `--tools` 목록도 이를 제거할 수 없습니다. 이 예외는 의도적입니다: 도구는 대화를 종료하는 것 외에는 아무것도 하지 않으며, 파일이나 데이터를 읽거나 수정하지 않으며, 이러한 종류의 보안 장치는 적용되는 세션이 이를 끌 수 없을 때만 유지됩니다. 거부 규칙이 다른 모든 도구를 제거하고 `EndConversation`도 일치할 때, `"*"`처럼, Claude Code는 허용 규칙이 `EndConversation`을 명시적으로 명명하지 않는 한 유일한 도구로 남기는 대신 이를 제거합니다. 다른 모든 도구를 제거하지만 `EndConversation`과 일치하지 않는 거부 목록은 이를 제자리에 둡니다.
274
275[서브에이전트](/docs/ko/sub-agents)는 절대 도구를 받지 않습니다. 메인 대화의 도구 목록을 공유하는 백그라운드 작업은 이를 보지만, 거기서 호출하면 아무것도 종료되지 않습니다.
276
277도구는 다음의 모든 조건이 충족될 때만 나타납니다:
278
279* **버전**: Claude Code v2.1.213 이상.
280* **모델**: 세션의 모델이 Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, 또는 이들 중 하나의 최신 버전입니다.
281* **표면**: 대화형 터미널 세션, IDE의 통합 터미널에서의 `claude` 세션 포함, 이것이 [JetBrains 플러그인](/docs/ko/jetbrains)이 실행되는 방식입니다. 다른 표면은 도구를 포함하지 않습니다:
282 * 비대화형 `-p` 실행
283 * [Agent SDK](/docs/ko/agent-sdk/overview) TypeScript 및 Python 패키지를 통한 세션
284 * [VS Code 확장](/docs/ko/vs-code) 패널, 자체 CLI를 번들로 제공합니다
285 * [GitHub Actions](/docs/ko/github-actions)
286 * [웹의 Claude Code](/docs/ko/claude-code-on-the-web)
287* **시작 모드**: [`--bare`](/docs/ko/headless#start-faster-with-bare-mode) 세션이 아닙니다. Bare 모드는 셸 및 파일 도구만 로드하므로 도구는 거기서 등록되지 않습니다.
288* **제공자**: [Amazon Bedrock](/docs/ko/amazon-bedrock), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry)에서 사용할 수 없으며, [클라우드 게이트웨이](/docs/ko/claude-apps-gateway)를 통해 로그인한 세션에서도 사용할 수 없습니다.
158 289
159<h2 id="glob-tool-behavior">290<h2 id="glob-tool-behavior">
160 Glob 도구 동작291 Glob 도구 동작
161</h2>292</h2>
162 293
163Glob 도구는 이름 패턴으로 파일을 찾습니다. 재귀 디렉토리 매칭을 위한 `**`를 포함한 표준 glob 구문을 지원합니다:294Glob 도구는 이름 패턴으로 파일을 찾습니다. 재귀적 디렉토리 매칭을 위한 `**`를 포함한 표준 glob 구문을 지원합니다:
164 295
165* `**/*.js`는 모든 깊이의 모든 `.js` 파일과 일치합니다296* `**/*.js`는 모든 깊이의 모든 `.js` 파일과 일치합니다
166* `src/**/*.ts`는 `src/` 아래의 모든 `.ts` 파일과 일치합니다297* `src/**/*.ts`는 `src/` 아래의 모든 `.ts` 파일과 일치합니다
167* `*.{json,yaml}`은 현재 디렉토리의 `.json` 및 `.yaml` 파일과 일치합니다298* `*.{json,yaml}`은 현재 디렉토리의 `.json` 및 `.yaml` 파일과 일치합니다
168 299
169결과는 수정 시간으로 정렬되고 100개 파일로 제한됩니다. 상한에 도달하면, Claude는 결과에서 잘림 플래그를 보고 패턴을 좁힐 수 있습니다.300결과는 수정 시간순으로 정렬되며 100개 파일로 제한됩니다. 제한에 도달하면 Claude는 결과에서 잘림 플래그를 보고 패턴을 좁힐 수 있습니다.
170 301
171Glob은 기본적으로 `.gitignore`를 존중하지 않으므로, gitignored 파일을 추적된 파일과 함께 찾습니다. 이는 gitignored 파일을 건너뛰는 [Grep](#grep-tool-behavior)과 다릅니다. Glob이 `.gitignore`를 존중하도록 하려면 Claude Code를 시작하기 전에 `CLAUDE_CODE_GLOB_NO_IGNORE=false`를 설정합니다.302Glob은 기본적으로 `.gitignore`를 존중하지 않으므로 gitignore된 파일을 추적된 파일과 함께 찾습니다. 이는 gitignore된 파일을 건너뛰는 [Grep](#grep-tool-behavior)과 다릅니다. Glob이 `.gitignore`를 존중하도록 하려면 Claude Code를 시작하기 전에 `CLAUDE_CODE_GLOB_NO_IGNORE=false`를 설정하십시오.
172 303
173`pattern` 또는 `path` 값이 null 바이트를 포함하면 Claude에게 이를 제거하도록 요청하는 오류를 반환합니다. 304Claude Code는 검색 디렉토리의 존재 여부를 확인하기 전에 Glob 호출에 대한 권한을 결정합니다. 여전히 [작업 디렉토리](/docs/ko/permissions#working-directories) 외부의 누락된 `path`에 대해 읽기 권한 확인을 실행하므로 경로에 대한 권한 프롬프트가 경로가 존재한다는 의미는 아닙니다.
305
306null 바이트를 포함하는 `pattern` 또는 `path` 값은 Claude에 이를 제거하도록 요청하는 오류를 반환합니다. 
174 307
175<h2 id="grep-tool-behavior">308<h2 id="grep-tool-behavior">
176 Grep 도구 동작309 Grep 도구 동작
177</h2>310</h2>
178 311
179Grep 도구는 파일 내용에서 패턴을 검색합니다. [Glob](#glob-tool-behavior)이 이름으로 파일을 찾는 경우, Grep은 파일 내부의 라인을 찾습니다.312Grep 도구는 파일 내용에서 패턴을 검색합니다. [Glob](#glob-tool-behavior)이 파일 이름으로 파일을 찾는 곳에서 Grep은 파일 내부의 줄을 찾습니다.
180 313
181Grep은 [ripgrep](https://github.com/BurntSushi/ripgrep)을 기반으로 하며 POSIX grep이 아닌 ripgrep의 정규식 구문을 사용합니다. 정규식 메타문자를 포함하는 패턴은 이스케이프가 필요합니다. 예를 들어, Go 코드에서 `interface{}`를 찾으려면 `interface\{\}` 패턴이 필요합니다.314Grep은 [ripgrep](https://github.com/BurntSushi/ripgrep)을 기반으로 하며 POSIX grep이 아닌 ripgrep의 정규식 구문을 사용합니다. 정규식 메타문자를 포함하는 패턴은 이스케이프 처리가 필요합니다. 예를 들어 Go 코드에서 `interface{}`를 찾으려면 `interface\{\}` 패턴이 필요합니다.
182 315
183ripgrep이 거부하는 패턴, glob 또는 파일 유형은 Claude가 입력을 수정하고 다시 검색할 수 있도록 ripgrep의 진단을 포함하는 오류를 반환합니다. v2.1.208 이전에는 Claude Code가 검색된 텍스트가 대상 파일에 존재하더라도 거부된 입력을 오류 대신 `No files found`로 보고했습니다.316ripgrep이 거부하는 패턴, glob 또는 파일 유형은 ripgrep의 진단을 포함하는 오류를 반환하므로 Claude가 입력을 수정하고 다시 검색할 수 있습니다. v2.1.208 이전에는 Claude Code가 거부된 입력을 검색된 텍스트가 대상 파일에 존재하더라도 오류 대신 `No files found`로 보고했습니다.
184 317
185세 가지 출력 모드는 반환되는 내용을 제어합니다:318세 가지 출력 모드는 반환되는 내용을 제어합니다:
186 319
187* `files_with_matches`: 파일 경로만, 라인 내용 없음. 이것이 기본값입니다.320* `files_with_matches`: 파일 경로만, 줄 내용 없음. 이것이 기본값입니다.
188* `content`: 파일 및 라인 번호가 있는 일치하는 라인.321* `content`: 파일 및 줄 번호가 있는 일치하는 줄. 도구의 `offset` 매개변수가 일치하는 패턴의 마지막 일치를 지나가리킬 때, Grep은 `No entries at this offset`을 반환하므로 Claude는 패턴이 일치하지 않는다고 결론짓는 대신 offset을 확대하거나 재설정합니다.
189* `count`: 파일당 일치 수, 그 다음 모든 일치하는 파일 전체의 합계. 합계는 도구의 `head_limit` 또는 `offset` 매개변수가 나열된 파일별 항목을 자르더라도 모든 일치를 포함합니다. v2.1.208 이전에는 합계가 나열된 항목만 합산했습니다.322* `count`: 파일당 일치 개수, 그 다음 모든 일치하는 파일 전체의 합계. 합계는 도구의 `head_limit` 또는 `offset` 매개변수가 나열된 파일별 항목을 자르더라도 모든 일치를 포함합니다. v2.1.208 이전에는 합계가 나열된 항목만 합산했습니다.
323
324Claude는 `glob` 매개변수(예: `**/*.tsx`)를 사용하여 파일별로 결과를 범위 지정하거나 `type` 매개변수(예: `py` 또는 `rust`)를 사용하여 언어별로 범위 지정할 수 있습니다. 기본적으로 패턴은 단일 줄 내에서 일치합니다. Claude는 `multiline: true`를 설정하여 줄 경계를 넘어 일치시킬 수 있습니다.
190 325
191Claude는 `**/*.tsx`와 같은 `glob` 매개변수로 파일별로 결과를 범위 지정하거나, `py` 또는 `rust`와 같은 `type` 매개변수로 언어별로 범위 지정할 수 있습니다. 기본적으로 패턴은 단일 라인 내에서 일치합니다. Claude는 `multiline: true`를 설정하여 라인 경계를 넘어 일치시킬 수 있습니다.326Grep은 `.gitignore`를 준수하므로 gitignore된 파일은 건너뜁니다. gitignore된 파일을 검색하려면 Claude가 해당 경로를 직접 전달합니다.
192 327
193Grep은 `.gitignore`를 존중하므로 gitignored 파일은 건너뜁니다. gitignored 파일을 검색하려면 Claude는 경로를 직접 전달합니다.328Claude Code는 검색 `path`가 존재하는지 확인하기 전에 Grep 호출에 대한 권한을 결정합니다. 여전히 [작업 디렉터리](/docs/ko/permissions#working-directories) 외부의 누락된 `path`에 대해 읽기 권한 확인을 실행하므로 경로에 대한 권한 프롬프트는 경로가 존재한다는 의미가 아닙니다.
194 329
195<h2 id="lsp-tool-behavior">330<h2 id="lsp-tool-behavior">
196 LSP 도구 동작331 LSP 도구 동작
197</h2>332</h2>
198 333
199LSP 도구는 실행 중인 언어 서버에서 Claude에 코드 인텔리전스를 제공합니다. 각 파일 편집 후 자동으로 타입 오류 및 경고를 보고하므로 Claude는 별도의 빌드 단계 없이 문제를 수정할 수 있습니다. Claude는 또한 코드를 탐색하기 위해 직접 호출할 수 있습니다:334LSP 도구는 실행 중인 언어 서버로부터 Claude에 코드 인텔리전스를 제공합니다. 각 파일 편집 후, 자동으로 타입 오류 및 경고를 보고하므로 Claude는 별도의 빌드 단계 없이 문제를 해결할 수 있습니다. Claude는 또한 코드를 탐색하기 위해 직접 호출할 수 있습니다:
200 335
201* 기호의 정의로 이동336* 기호의 정의로 이동
202* 기호에 대한 모든 참조 찾기337* 기호에 대한 모든 참조 찾기
203* 위치의 타입 정보 가져오기338* 위치에서 타입 정보 가져오기
204* 파일의 기호 나열339* 파일의 기호 나열
205* 워크스페이스 전체에서 기호 이름으로 검색340* 작업 영역 전체에서 이름으로 기호 검색
206* 인터페이스의 구현 찾기341* 인터페이스의 구현 찾기
207* 호출 계층 추적342* 호출 계층 추적
208 343
209이 도구는 언어에 대한 [코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence)을 설치할 때까지 비활성 상태입니다. 플러그인은 언어 서버 구성을 번들로 제공하며, 서버 바이너리는 별도로 설치합니다.344Claude Code는 언어에 대한 [코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence)을 설치할 때까지 도구를 비활성 상태로 유지합니다. [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 Claude Code는 플러그인 언어 서버를 시작하지 않으므로 LSP 도구는 그곳에서 비활성 상태로 유지됩니다. Claude Code는 플러그인에서 언어 서버의 구성을 가져오며, 사용자가 서버 바이너리를 직접 설치합니다.
345
346Claude Code는 언어 서버를 시작할 수 없는 파일에 대한 각 LSP 호출에 대해 오류 결과를 반환합니다.
210 347
211<h2 id="monitor-tool">348<h2 id="monitor-tool">
212 Monitor 도구349 Monitor 도구
213</h2>350</h2>
214 351
215Monitor 도구를 사용하면 Claude는 백그라운드에서 무언가를 감시하고 대화를 일시 중지하지 않고 변경될 때 반응할 수 있습니다. Claude에 다음을 요청합니다:352Monitor 도구를 사용하면 Claude가 대화를 일시 중지하지 않고 백그라운드에서 무언가를 감시하고 변경 시 반응할 수 있습니다. Claude에게 다음을 요청할 수 있습니다:
216 353
217* 로그 파일을 추적하고 오류가 나타나면 플래그 지정354* 로그 파일을 추적하고 오류가 나타나면 플래그 지정
218* PR 또는 CI 작업을 폴링하고 상태가 변경되면 보고355* PR 또는 CI 작업을 폴링하고 상태 변경 시 보고
219* 파일 변경을 위해 디렉토리 감시356* 디렉터리의 파일 변경 감시
220* 지정한 장기 실행 스크립트의 출력 추적357* 지정한 장시간 실행 스크립트의 출력 추적
221* WebSocket 피드에 연결하고 각 메시지가 도착할 때 보고358* WebSocket 피드에 연결하고 각 메시지가 도착할 때마다 보고
222 359
223대부분의 감시의 경우, Claude는 작은 스크립트를 작성하고, 백그라운드에서 실행하며, 각 출력 라인이 도착할 때 수신합니다. 이미 이벤트를 푸시하는 서버의 경우, Claude는 스크립트를 실행하는 대신 [WebSocket](#websocket-source)을 열 수 있습니다.360대부분의 감시의 경우 Claude는 작은 스크립트를 작성하고 백그라운드에서 실행한 후 각 출력 라인을 도착할 때마다 수신합니다. 이미 이벤트를 푸시하는 서버의 경우 Claude는 스크립트를 실행하는 대신 [WebSocket](#websocket-source)을 열 수 있습니다.
224 361
225동일한 세션에서 계속 작업하고 Claude는 이벤트가 발생할 때 개입합니다. Claude에 취소하도록 요청하거나 세션을 종료하여 모니터를 중지합니다.362사용자는 동일한 세션에서 계속 작업하고 Claude는 이벤트가 도착할 때 개입합니다.
226 363
227Monitor가 명령을 실행할 때, [Bash와 동일한 권한 규칙](/docs/ko/permissions#tool-specific-permission-rules)을 사용하므로, Bash에 대해 설정한 `allow` 및 `deny` 패턴이 여기에도 적용됩니다. [WebSocket 소스](#websocket-source)는 자체 승인 프롬프트를 가집니다.364Claude에게 취소를 요청하거나 세션을 종료하여 모니터를 중지합니다. 예를 들어 `/tasks`에서 시작한 모니터를 시작한 [subagent](/docs/ko/sub-agents)를 중지하면 해당 모니터도 함께 중지됩니다.
228 365
229이 도구는 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 사용할 수 없습니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정되었을 때도 사용할 수 없습니다.366Monitor가 명령을 실행할 때 [Bash와 동일한 권한 규칙](/docs/ko/permissions#tool-specific-permission-rules)을 사용하므로 Bash에 대해 설정한 `allow` 및 `deny` 패턴이 여기에도 적용됩니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 활성화되어 있는 동안 Claude Code는 `Monitor` 자체의 이름을 지정하는 allow 규칙과 [삭제하는 다른 광범위한 allow 규칙](/docs/ko/permission-modes#how-the-classifier-evaluates-actions)을 따로 설정하므로 분류기는 Monitor 명령을 Bash 명령과 동일한 방식으로 검토합니다.
230 367
231플러그인은 Claude에 시작하도록 요청하는 대신 플러그인이 활성화될 때 자동으로 시작되는 모니터를 선언할 수 있습니다. [플러그인 모니터](/docs/ko/plugins-reference#monitors)를 참조합니다.368[WebSocket 소스](#websocket-source)에는 자체 승인 프롬프트가 있으며, 분류기도 자동 모드에서 이를 결정합니다.
369
370이 도구는 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 사용할 수 없습니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 경우에도 사용할 수 없습니다.
371
372플러그인은 Claude에게 시작을 요청하는 대신 플러그인이 활성화될 때 자동으로 시작되는 모니터를 선언할 수 있습니다. [플러그인 모니터](/docs/ko/plugins-reference#monitors)를 참조하세요.
232 373
233<h3 id="websocket-source">374<h3 id="websocket-source">
234 WebSocket 소스375 WebSocket 소스
235</h3>376</h3>
236 377
237<Note>378<Note>
238 WebSocket 소스는 Claude Code v2.1.195 이상이 필요합니다.379 WebSocket 소스에는 Claude Code v2.1.195 이상이 필요합니다.
239</Note>380</Note>
240 381
241서버가 이미 WebSocket을 통해 이벤트를 푸시하는 경우, Claude는 폴링 스크립트를 작성하는 대신 직접 연결할 수 있습니다. 각 종류의 소켓 활동은 이벤트가 되거나 감시를 종료합니다:382서버가 이미 WebSocket을 통해 이벤트를 푸시하는 경우 Claude는 폴링 스크립트를 작성하는 대신 직접 연결할 수 있습니다. 각 종류의 소켓 활동은 이벤트가 되거나 감시를 종료합니다:
242 383
243* **텍스트 메시지**: 각각이 하나의 이벤트가 되며, 메시지가 여러 줄에 걸쳐 있어도 마찬가지입니다.384* **텍스트 메시지**: 각각이 하나의 이벤트가 되며, 메시지가 여러 줄에 걸쳐 있어도 마찬가지입니다.
244* **바이너리 메시지**: 통과하지 않습니다. Claude는 `[binary frame, 512 bytes]`와 같은 자리 표시자 라인을 수신합니다.385* **바이너리 메시지**: 통과하지 않습니다. Claude는 `[binary frame, 512 bytes]`와 같은 자리 표시자 라인을 수신합니다.
245* **1 MiB보다 큰 메시지**: 감시가 종료되므로, 존재하는 경우 필터링된 피드를 구독합니다.386* **1 MiB보다 큰 메시지**: 감시가 종료되므로 필터링된 피드가 있는 경우 구독하세요.
246* **소켓 종료**: 감시가 종료되고 Claude는 종료 코드를 수신합니다.387* **소켓 종료**: 감시가 종료되고 Claude는 종료 코드를 수신합니다.
247 388
248WebSocket 감시는 `command` 대신 `ws` 입력을 사용하며, 단일 Monitor 호출은 둘을 결합할 수 없습니다. `ws` 입력에는 두 개의 필드가 있습니다:389WebSocket 감시는 `command` 대신 `ws` 입력을 사용하며, 단일 Monitor 호출은 둘을 결합할 수 없습니다. `ws` 입력에는 두 가지 필드가 있습니다:
249 390
250| 필드 | 필수 | 설명 |391| 필드 | 필수 | 설명 |
251| :---------- | :-- | :-------------------------------------------------------------------------------------- |392| :---------- | :-- | :------------------------------------------------------------------------------------ |
252| `url` | 예 | 연결할 엔드포인트입니다. `ws://` 또는 `wss://` URL이어야 하며, 포함된 자격 증명이나 공백이 없어야 하고, ASCII 문자만 사용해야 합니다 |393| `url` | 예 | 연결할 엔드포인트입니다. `ws://` 또는 `wss://` URL이어야 하며 포함된 자격 증명이나 공백이 없어야 하고 ASCII 문자만 사용해야 합니다 |
253| `protocols` | 아니요 | 핸드셰이크 중에 제공할 WebSocket 하위 프로토콜 이름입니다. 각 항목은 유효한 하위 프로토콜 토큰이어야 하며, 목록에 중복이 포함될 수 없습니다 |394| `protocols` | 아니요 | 핸드셰이크 중에 제공할 WebSocket 하위 프로토콜 이름입니다. 각 항목은 유효한 하위 프로토콜 토큰이어야 하며 목록에 중복이 포함될 수 없습니다 |
254 395
255`timeout_ms` 및 `persistent` 입력은 명령에 대해 동일하게 작동합니다: `persistent`가 설정되지 않으면 감시가 마감일에 종료되고, `TaskStop`은 조기에 취소합니다.396`timeout_ms` 및 `persistent` 입력은 명령에서와 동일하게 작동합니다: `persistent`가 설정되지 않으면 감시가 기한에 종료되고 `TaskStop`이 조기에 취소합니다.
256 397
257WebSocket을 열면 승인을 위한 프롬프트가 표시되며, 프롬프트는 동일한 호스트에 대해 향후 프롬프트를 건너뛸 수 있는 옵션을 제공하지 않습니다.398WebSocket을 열면 승인을 요청합니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 분류기가 대신 결정합니다. 프롬프트는 동일한 호스트에 대해 향후 프롬프트를 건너뛸 수 있는 옵션을 제공하지 않습니다.
258 399
259Claude Code는 개인, 링크-로컬 또는 클라우드 메타데이터 주소를 가리키는 URL을 거부하며, 이는 해당 주소로 확인되는 호스트 이름을 포함합니다. 또한 `sandbox.network.deniedDomains`의 호스트를 거부하고, 관리 설정에서 [`allowManagedDomainsOnly`](/docs/ko/settings#sandbox-settings)가 설정된 경우, 관리 허용 목록 외부의 모든 호스트를 거부합니다.400Claude Code는 프라이빗, 링크-로컬 또는 클라우드 메타데이터 주소를 가리키는 URL을 거부하며, 이는 해당 주소로 확인되는 호스트 이름도 포함합니다. 또한 `sandbox.network.deniedDomains`의 호스트를 거부하고, 관리 설정에서 [`allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 설정된 경우 관리 허용 목록 외부의 모든 호스트를 거부합니다.
260 401
261<h2 id="notebookedit-tool-behavior">402<h2 id="notebookedit-tool-behavior">
262 NotebookEdit 도구 동작403 NotebookEdit 도구 동작
276 PowerShell 도구417 PowerShell 도구
277</h2>418</h2>
278 419
279PowerShell 도구를 사용하면 Claude는 PowerShell 명령을 기본적으로 실행할 수 있습니다. Windows에서는 이것이 Git Bash를 통해 라우팅하는 대신 PowerShell에서 명령을 실행한다는 의미입니다. 도구가 사용 가능해지는 방식은 플랫폼에 따라 다릅니다:420PowerShell 도구를 사용하면 Claude가 PowerShell 명령을 기본적으로 실행할 수 있습니다. Windows에서는 이것이 명령이 Git Bash를 통해 라우팅되는 대신 PowerShell에서 실행됨을 의미합니다. 도구가 사용 가능해지는 방식은 플랫폼에 따라 다릅니다.
280 421
281* **Git Bash가 없는 Windows**: 도구가 자동으로 활성화됩니다.422* **Git Bash가 없는 Windows**: 도구가 자동으로 활성화됩니다.
282* **Git Bash가 설치된 Windows**: 도구가 점진적으로 출시되고 있습니다.423* **Git Bash가 설치된 Windows**: 도구는 claude.ai 및 Console 계정에서 기본적으로 켜져 있습니다. Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry 세션에서 활성화하려면 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정하거나, 끄려면 `0`을 설정합니다.
283* **Linux, macOS 및 WSL**: 도구가 옵트인입니다.424* **Linux, macOS 및 WSL**: 도구는 선택 사항입니다.
425
426[PreToolUse hooks](/docs/ko/hooks#powershell)는 도구의 명령 문자열을 `tool_input.command`에서 수신하며, Bash 도구와 동일한 필드를 가집니다.
427
428셸 명령을 검사하는 hooks에서 `Bash|PowerShell`과 일치시킵니다. [PowerShell hook 입력 섹션](/docs/ko/hooks#powershell)은 `Bash`만 일치시키는 것이 충분하지 않은 이유를 설명합니다.
284 429
285<h3 id="enable-the-powershell-tool">430<h3 id="enable-the-powershell-tool">
286 PowerShell 도구 활성화431 PowerShell 도구 활성화
287</h3>432</h3>
288 433
289환경 또는 `settings.json`에서 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정합니다:434환경 또는 `settings.json`에서 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정합니다.
290 435
291```json theme={null}436```json theme={null}
292{437{
296}441}
297```442```
298 443
299Windows에서는 변수를 `0`으로 설정하여 출시를 거부할 수 있습니다. Linux, macOS 및 WSL에서는 도구에 PowerShell 7 이상이 필요합니다: `pwsh`를 설치하고 `PATH`에 있는지 확인합니다.444Windows에서는 도구를 끄려면 변수를 `0`으로 설정합니다. Linux, macOS 및 WSL에서는 도구에 PowerShell 7 이상이 필요합니다. `pwsh`를 설치하고 `PATH`에 있는지 확인합니다.
300 445
301Windows에서 Claude Code는 PowerShell 7+의 경우 `pwsh.exe`를 자동 감지하며 PowerShell 5.1의 경우 `powershell.exe`로 폴백합니다. 도구가 활성화되면 Claude는 PowerShell을 기본 셸로 취급합니다. Bash 도구는 Git Bash가 설치되어 있을 때 POSIX 스크립트에 사용할 수 있습니다.446Windows에서 Claude Code는 PowerShell 7+에 대해 `pwsh.exe`를 자동으로 감지하며, PowerShell 5.1에 대해 `powershell.exe`로 폴백됩니다. 도구가 활성화되면 Claude는 PowerShell을 기본 셸로 취급합니다. Bash 도구는 Git Bash가 설치되어 있을 때 POSIX 스크립트에 사용 가능하게 유지됩니다.
302 447
303Claude Code는 프로세스 범위에서만 `-ExecutionPolicy Bypass`를 사용하여 PowerShell을 생성하므로 `.ps1` 스크립트 및 모듈 가져오기는 머신의 정책을 변경하지 않고도 기본 Windows 설치에서 작동합니다. 프로세스 범위 바이패스는 그룹 정책 `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않으므로 엔터프라이즈 정책이 여전히 적용됩니다. 머신의 유효한 실행 정책을 대신 존중하려면 `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`을 설정합니다.448Claude Code는 프로세스 범위에서만 `-ExecutionPolicy Bypass`를 사용하여 PowerShell을 생성하므로, `.ps1` 스크립트 및 모듈 가져오기는 머신의 정책을 변경하지 않고도 기본 Windows 설치에서 작동합니다. 프로세스 범위 바이패스는 Group Policy `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않으므로, 엔터프라이즈 정책이 여전히 적용됩니다. 머신의 유효한 실행 정책을 대신 존중하려면 `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`을 설정합니다.
304 449
305<h3 id="shell-selection-in-settings-hooks-and-skills">450<h3 id="shell-selection-in-settings-hooks-and-skills">
306 설정, hooks 및 skills의 shell 선택451 설정, hooks 및 skills의 셸 선택
307</h3>452</h3>
308 453
309세 가지 추가 설정이 PowerShell이 사용되는 위치를 제어합니다:454세 가지 추가 설정이 PowerShell이 사용되는 위치를 제어합니다.
310 455
311* [`settings.json`](/docs/ko/settings#available-settings)의 `"defaultShell": "powershell"`: 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. PowerShell 도구가 활성화되어야 합니다.456* [`settings.json`](/docs/ko/settings-reference#all-settings)의 `"defaultShell": "powershell"`: 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. PowerShell 도구가 활성화되어야 합니다.
312* 개별 [command hooks](/docs/ko/hooks#command-hook-fields)의 `"shell": "powershell"`: 해당 hook을 PowerShell에서 실행합니다. Hooks는 PowerShell을 직접 생성하므로 `CLAUDE_CODE_USE_POWERSHELL_TOOL`에 관계없이 작동합니다.457* 개별 [command hooks](/docs/ko/hooks#command-hook-fields)의 `"shell": "powershell"`: 해당 hook을 PowerShell에서 실행합니다. Hooks는 PowerShell을 직접 생성하므로, `CLAUDE_CODE_USE_POWERSHELL_TOOL`과 관계없이 작동합니다.
313* [skill frontmatter](/docs/ko/skills#frontmatter-reference)의 `shell: powershell`: `` !`command` `` 블록을 PowerShell에서 실행합니다. PowerShell 도구가 활성화되어야 합니다.458* [skill frontmatter](/docs/ko/skills#frontmatter-reference)의 `shell: powershell`: `` !`command` `` 블록을 PowerShell에서 실행합니다. PowerShell 도구가 활성화되어야 합니다.
314 459
315Bash 도구 섹션에서 설명한 동일한 주 세션 작업 디렉토리 재설정 동작이 PowerShell 명령에 적용되며, `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 환경 변수도 포함됩니다.460Bash 도구 섹션에서 설명한 동일한 주 세션 작업 디렉토리 재설정 동작이 PowerShell 명령에 적용되며, `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 환경 변수를 포함합니다.
461
462v2.1.196부터 `grep`, `rg`, `egrep`, `fgrep`, `findstr` 및 `git grep`의 종료 코드 1은 일치하는 항목이 없음을 의미합니다. `git diff`의 종료 코드 1은 차이가 존재함을 의미합니다. 두 결과 모두 Claude에 명령 실패로 보고되지 않습니다. `robocopy`의 경우, 종료 코드 0부터 7까지는 복사된 파일 또는 감지된 추가 파일과 같은 정보 결과입니다. 종료 코드 8 이상은 실패로 계산됩니다.
463
464<h3 id="windows-encoding-and-exit-codes">
465 Windows 인코딩 및 종료 코드
466</h3>
316 467
317v2.1.196부터 PowerShell 도구는 Bash 도구의 검색 및 diff 종료 코드 처리와 일치합니다. `grep`, `egrep`, `fgrep` 및 `git grep`의 종료 코드 1은 일치하는 항목이 없음을 의미하고, `git diff`의 종료 코드 1은 차이가 존재함을 의미하므로 이러한 결과는 Claude에 명령 실패로 보고되지 않습니다.468Windows에서 다음 PowerShell 인코딩 및 종료 코드 동작에는 Claude Code v2.1.214 이상이 필요합니다.
469
470* `>`와 `>>`를 사용한 리디렉션은 PowerShell 5.1에서 UTF-8 파일을 작성합니다.
471* Claude Code는 기본 명령의 표준 입력으로 파이프된 텍스트를 UTF-8로 인코딩합니다.
472* Claude Code는 ANSI 이스케이프 시퀀스 없이 오류 출력을 캡처합니다.
473* 자식 프로세스가 표준 입력을 대기하는 명령은 행(hang)되는 대신 파일 끝을 수신합니다.
474* `where.exe`의 종료 코드 1은 일치하는 항목이 없음을 의미하고, `fc.exe` 및 `diff.exe`에서는 파일이 다름을 의미하므로, 명령이 출력을 생성할 때 Claude Code는 해당 종료 코드를 명령 오류가 아닌 유효한 부정적 답변으로 취급합니다. Claude Code는 여전히 `where.exe /Q` 또는 `$null`로의 리디렉션과 같은 침묵된 형식을 종료 코드 1에서 실패로 보고합니다.
475
476v2.1.214 이전에는 PowerShell 5.1의 `>`가 UTF-16LE 파일을 작성했고, 비ASCII 파이프된 입력은 `?`로 도착했으며, Python 스크립트는 비ASCII 문자를 인쇄할 때 `UnicodeEncodeError`로 충돌할 수 있었습니다.
318 477
319<h3 id="preview-limitations">478<h3 id="preview-limitations">
320 미리보기 제한사항479 미리보기 제한 사항
321</h3>480</h3>
322 481
323PowerShell 도구는 미리보기 중에 다음과 같은 알려진 제한사항이 있습니다:482PowerShell 도구는 미리보기 중에 다음과 같은 알려진 제한 사항이 있습니다.
324 483
325* PowerShell 프로필이 로드되지 않습니다484* PowerShell 프로필이 로드되지 않습니다.
326* Windows에서는 sandboxing이 지원되지 않습니다485* Windows에서는 샌드박싱이 지원되지 않습니다.
327 486
328<h2 id="read-tool-behavior">487<h2 id="read-tool-behavior">
329 Read 도구 동작488 Read 도구 동작
330</h2>489</h2>
331 490
332Read 도구는 파일 경로를 가져와 라인 번호가 있는 내용을 반환합니다. Claude는 항상 절대 경로를 전달하도록 지시됩니다.491Read 도구는 파일 경로를 받아 줄 번호와 함께 내용을 반환합니다. Claude는 항상 절대 경로를 전달하도록 지시됩니다.
492
493기본적으로 Read는 파일의 시작 부분에서 반환합니다. 전체 파일 읽기가 토큰 제한을 초과하면 Read는 첫 번째 페이지를 `PARTIAL view` 공지와 함께 반환하며, 이는 Claude가 받은 파일의 양과 `offset` 및 `limit`을 사용하여 더 읽는 방법을 알려줍니다. 명시적 `offset` 또는 `limit`을 전달하고 여전히 토큰 제한을 초과하는 읽기는 오류를 반환합니다.
333 494
334기본적으로 Read는 시작 부분에서 파일을 반환합니다. 전체 파일 읽기가 토큰 제한을 초과하면, Read는 첫 번째 페이지를 `PARTIAL view` 공지와 함께 반환하며, 이는 Claude가 받은 파일의 양과 `offset` 및 `limit`으로 더 많이 읽는 방법을 알려줍니다. 명시적 `offset` 또는 `limit`을 전달하고 여전히 토큰 제한을 초과하는 읽기는 오류를 반환합니다.495명시적 `limit`이 있는 읽기는 선택된 줄이 토큰 제한에 맞을 수 있는 것을 초과하는 즉시 중지되고 나머지 범위를 로드하지 않고 오류를 반환합니다. 오류는 Claude에게 더 작은 `limit`을 사용하거나, 단일 줄이 그렇게 큰 경우 [Grep](#grep-tool-behavior) 대신 특정 내용을 검색하도록 지시합니다. v2.1.208 이전에는 Claude Code가 전체 범위를 메모리에 로드한 후 거부했으므로, 매우 긴 단일 줄이 있는 파일을 읽으면 메모리 부족이 발생할 수 있었습니다.
335 496
336명시적 `limit`이 있는 읽기는 선택된 라인이 토큰 제한이 맞출 수 있는 것을 초과하자마자 중지되고 나머지 범위를 로드하지 않고 오류를 반환합니다. 오류는 Claude에게 더 작은 `limit`을 사용하거나, 단일 라인이 그렇게 클 때 [Grep](#grep-tool-behavior) 대신 특정 콘텐츠를 검색하도록 지시합니다. v2.1.208 이전에는 Claude Code가 전체 범위를 메모리에 로드한 후 거부했으므로, 매우 긴 단일 라인이 있는 파일은 메모리를 소진할 수 있었습니다.497빈 파일을 읽으면 파일이 존재하지만 내용이 비어 있다는 공지가 반환되고, 마지막 줄을 지난 `offset`은 파일의 줄 수를 나타내는 공지를 반환합니다. v2.1.208 이전에는 빈 파일을 읽으면 끝을 지난 공지가 반환되었습니다.
337 498
338빈 파일을 읽으면 파일이 존재하지만 내용이 비어 있다는 공지가 반환되고, 마지막 라인을 지나는 `offset`은 파일의 라인 수를 제공하는 공지를 반환합니다. v2.1.208 이전에는 빈 파일을 읽으면 과거 끝 공지가 반환되었습니다.499Read는 일반 텍스트 이상의 여러 파일 유형을 처리합니다:
339 500
340Read는 일반 텍스트 이상의 여러 파일 타입을 처리합니다:501* **이미지**: PNG, JPG 및 기타 이미지 형식은 원본 바이트가 아닌 Claude가 볼 수 있는 시각적 콘텐츠로 반환됩니다. Claude Code는 모델의 이미지 크기 제한에 맞추기 위해 큰 이미지를 크기 조정하고 재압축하므로, Claude는 큰 스크린샷의 축소된 버전을 볼 수 있습니다. v2.1.196부터 크기 조정 후에도 500KB보다 큰 이미지는 픽셀 치수는 변경하지 않고 품질을 낮춘 JPEG로 다시 인코딩됩니다. Claude가 큰 이미지에서 세밀한 픽셀 수준의 세부 정보를 놓친 경우, 예를 들어 ImageMagick을 통해 Bash로 관심 영역을 먼저 자르도록 요청하십시오.
502* **PDF**: Claude는 짧은 `.pdf` 파일을 전체적으로 읽습니다. 10페이지보다 긴 PDF의 경우, `pages` 매개변수(예: `"1-5"`)를 사용하여 범위로 읽으며, 한 번에 최대 20페이지까지 읽습니다.
503* **Jupyter 노트북**: `.ipynb` 파일은 코드, 마크다운 및 시각화를 포함한 모든 셀과 해당 출력을 반환합니다. Claude Code는 100MB를 초과하는 노트북 파일을 읽기를 거부합니다. 오류는 Claude에게 셀 슬라이스와 같은 노트북의 일부를 읽는 방법을 알려주며, 셸 명령을 사용합니다.
504
505Read는 디렉토리가 아닌 파일만 읽습니다. Claude는 `ls`와 같은 셸 명령을 사용하여 디렉토리 내용을 나열합니다.
506
507<h2 id="sendfeedback-tool-behavior">
508 SendFeedback 도구 동작
509</h2>
510
511Claude가 작성한 피드백은 Claude Code에 대해 Claude가 사용자를 위해 작성하는 피드백 보고서입니다. Claude Code v2.1.238 이상이 필요합니다. Claude Code는 각 초안을 사용자의 머신에 `~/.claude/feedback/drafts/` 아래에 저장하며, SendFeedback 도구를 사용하여 초안을 전송할 때까지 Anthropic에 아무것도 전달되지 않습니다. Claude는 다음의 경우에 SendFeedback 도구로 초안을 작성합니다:
512
513* 도구 또는 명령이 계속 실패하는 경우
514* 사용자가 요청한 작업을 도와줄 수 없는 경우
515* 사용자가 Claude가 한 실수를 지적하거나 Claude가 실수를 발견한 경우
516* 사용자가 피드백을 제출하도록 요청하는 경우
517
518<h3 id="what-you-see-when-claude-drafts">
519 Claude가 초안을 작성할 때 표시되는 내용
520</h3>
341 521
342* **이미지**: PNG, JPG 및 기타 이미지 형식은 원본 바이트가 아닌 Claude가 볼 수 있는 시각적 콘텐츠로 반환됩니다. Claude Code는 모델의 이미지 크기 제한에 맞도록 큰 이미지를 크기 조정하고 재압축하므로, Claude는 큰 스크린샷의 축소된 버전을 볼 수 있습니다. v2.1.196부터, 크기 조정 후에도 여전히 500KB보다 큰 이미지는 픽셀 치수는 변경하지 않고 품질을 낮춘 JPEG로 다시 인코딩됩니다. Claude가 큰 이미지에서 세밀한 픽셀 수준의 세부 정보를 놓치면, 예를 들어 ImageMagick을 통해 Bash로 관심 영역을 먼저 자르도록 요청합니다.522Claude가 초안을 대기열에 추가한 후, 프롬프트 위에 초안의 제목이 있는 카드가 표시됩니다. `1`을 눌러 초안을 검토하고, `2`를 두 번 눌러 작성된 대로 전송하거나, `0`을 눌러 해제할 수 있습니다. 해제된 초안은 대기열에 남아 있습니다. 카드를 해제한 후 Claude Code는 Claude가 작성한 피드백을 끌 것인지 묻습니다. 두 번 거절하면 더 이상 묻지 않습니다.
343* **PDF**: Claude는 짧은 `.pdf` 파일을 전체적으로 읽습니다. 10페이지보다 긴 PDF의 경우, `"1-5"`와 같은 `pages` 매개변수로 범위에서 읽으며, 한 번에 최대 20페이지까지 읽습니다.
344* **Jupyter 노트북**: `.ipynb` 파일은 코드, markdown 및 시각화를 포함한 모든 셀과 해당 출력을 반환합니다.
345 523
346Read는 파일만 읽으며, 디렉토리는 읽지 않습니다. Claude는 Bash 도구를 통해 `ls`를 사용하여 디렉토리 내용을 나열합니다.524기본적으로 한 세션에서 최대 3개의 카드가 표시됩니다. Anthropic은 릴리스 없이 서버에서 이 제한을 조정할 수 있습니다. 제한 이후 및 [`feedbackDrafts`](/docs/ko/settings-reference#feedbackdrafts)를 `quiet`으로 설정할 때마다, 프롬프트 바닥글에 대기 중인 초안의 개수만 표시됩니다.
525
526<h3 id="review-and-edit-a-draft">
527 초안 검토 및 편집
528</h3>
529
530인수 없이 `/feedback`을 실행하여 대기열을 엽니다. 카드를 해제했거나 본 적이 없는 초안을 포함하여 모든 세션의 모든 대기 중인 초안을 나열합니다. 초안을 선택하여 검토를 위해 열면 다음을 수행할 수 있습니다:
531
532* 제목, 영역 및 세부 정보 편집
533* **전사본 전송**을 `yes` 또는 `no`로 설정합니다. Claude가 초안을 대기열에 추가한 세션의 전사본을 여전히 사용할 수 있을 때, `yes`로 시작되어 해당 대화를 Anthropic에 전송합니다. `no`는 보고서만 전송합니다.
534* 초안을 전송하거나, 삭제하거나, 나중을 위해 대기열에 남겨둡니다.
535
536대신 직접 보고서를 작성하려면 `w`를 눌러 표준 피드백 대화를 엽니다. `/feedback` 뒤에 텍스트가 있거나 `/bug`를 사용하면 해당 대화를 직접 엽니다.
537
538<h3 id="send-a-draft">
539 초안 전송
540</h3>
541
542초안을 전송하면 Claude Code는 `/feedback` 보고서와 동일한 방식으로 제출하며, 동일한 [보존](/docs/ko/data-usage#feedback-using-the-%2Ffeedback-command)을 사용하고 머신에서 초안을 삭제합니다. 카드에서 전송하면 `✓ Sent`가 표시됩니다. 대기열에서 전송하면 영수증 ID와 함께 닫힙니다.
543
544보고서에는 다음이 포함됩니다:
545
546* 사용자의 제목, 영역 및 세부 정보
547* Claude Code 버전, 운영 체제 및 모델과 같은 환경 정보
548* 최근 API 요청의 ID
549* 검토 화면에서 **전사본 전송**을 `yes`로 설정한 경우의 대화 전사본입니다. 카드에서 전송하면 전사본이 포함되지 않습니다.
550
551Claude Code는 전사본을 찾을 수 있도록 로컬 초안에 작업 디렉토리를 유지하며, 디렉토리를 전송하지 않습니다.
552
553[영구 데이터 보존 정책이 없는 조직](/docs/ko/zero-data-retention#features-disabled-under-zdr)에서 Claude Code는 `/feedback`과 마찬가지로 도구를 제외합니다. 그러한 조직의 세션에서 여전히 도구를 제공하는 경우, 초안은 머신에 남아 있으며 전송은 `Feedback collection is not available for organizations with custom data retention policies.` 오류로 실패합니다.
554
555<h3 id="discard-or-keep-a-draft">
556 초안 삭제 또는 유지
557</h3>
558
559초안을 삭제하면 Claude Code는 머신에서 초안을 삭제합니다. 대기열에 남겨둔 초안은 30일 후 또는 더 짧을 때 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays)가 지난 후 만료됩니다. 대기열은 모든 세션에서 10개의 초안을 보유하며, Claude가 11번째 초안을 대기열에 추가하면 Claude Code는 가장 오래된 초안을 삭제합니다. 세션의 초안이 여전히 대기열에 있을 때 `/exit`을 실행하면 Claude Code는 종료하기 전에 초안을 검토할 것인지 삭제할 것인지 묻습니다.
560
561<h3 id="turn-claude-drafted-feedback-off">
562 Claude가 작성한 피드백 끄기
563</h3>
564
565`/config`에서 **Claude가 작성한 피드백**을 `off`로 설정하면 [`feedbackDrafts`](/docs/ko/settings-reference#feedbackdrafts) 설정이 작성되거나, 한 세션 동안 [`CLAUDE_CODE_SEND_FEEDBACK=0`](/docs/ko/env-vars)을 설정합니다. 둘 중 하나를 사용하면 Claude는 초안을 대기열에 추가할 수 없습니다. 카드 없이 초안 작성을 계속하려면 `feedbackDrafts`를 `quiet`으로 설정합니다. 관리자는 [관리 설정](/docs/ko/managed-settings)에서 `feedbackDrafts`를 설정할 수 있으며, 이는 사용자의 설정보다 우선합니다.
566
567<h3 id="sessions-without-claude-drafted-feedback">
568 Claude가 작성한 피드백이 없는 세션
569</h3>
570
571Claude Code는 Claude API를 사용하는 머신의 대화형 터미널 세션에 도구를 포함합니다. 다음에서는 도구를 제외합니다:
572
573* 대기열을 검토할 화면이 없는 비대화형 `-p` 실행 및 [Agent SDK](/docs/ko/agent-sdk/overview) 세션
574* 머신의 대기열에 쓸 수 없는 [Claude Code on the web](/docs/ko/claude-code-on-the-web)과 같은 클라우드 세션
575* [Amazon Bedrock](/docs/ko/amazon-bedrock), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 또는 [Microsoft Foundry](/docs/ko/microsoft-foundry)의 세션
576* [`CLAUDE_CODE_SEND_FEEDBACK=0`](/docs/ko/env-vars) 또는 [`DISABLE_FEEDBACK_COMMAND=1`](/docs/ko/env-vars)을 설정하거나, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`을 비어 있지 않은 값으로 설정하거나, [기능 플래그 가져오기](/docs/ko/env-vars#features-that-need-feature-flag-fetching)를 끈 세션
577* 제품 피드백을 끈 조직 및 [영구 데이터 보존 정책이 없는 조직](/docs/ko/zero-data-retention#features-disabled-under-zdr)
578
579<h2 id="task-tool-availability">
580 Task 도구 가용성
581</h2>
582
583Claude Code v2.1.233 이상에서는 다음 도구들이 Opus 4.8, Sonnet 5, Fable 5, Mythos 5 또는 이후 버전의 해당 제품군에서 사용할 수 없습니다(옵트인하지 않는 한): `TodoWrite`, `TaskCreate`, `TaskGet`, `TaskUpdate`, 및 `TaskList`. 이러한 모델들은 작성된 체크리스트 없이 다단계 작업을 추적하며, 도구의 정의와 알림이 컨텍스트를 차지하므로 Claude Code는 이들을 제외합니다. 이들이 없으면 Claude는 작업 중에 [작업 목록](/docs/ko/interactive-mode#task-list)에 아무것도 추가하지 않습니다. Opus 4.7과 같은 다른 모델에서는 Claude Code가 기본적으로 4개의 Task 도구를 제공하며, [`CLAUDE_CODE_ENABLE_TASKS=0`](/docs/ko/env-vars)을 설정할 때만 `TodoWrite`를 제공합니다.
584
585나열된 모델 중 하나에서 이러한 도구를 사용하려면 다음 중 하나를 수행하십시오:
586
587* Claude Code를 시작하기 전에 [`CLAUDE_CODE_ENABLE_TODO_TOOLS=1`](/docs/ko/env-vars)을 내보내십시오. 예를 들어 `CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude`. Claude Code는 모든 모델과 모든 공급자에서 동일한 도구를 제공합니다
588* [`--allowedTools`](/docs/ko/cli-reference#cli-flags)에서 도구 중 하나의 이름을 지정하십시오. 예를 들어 `claude --allowedTools TaskCreate`
589* [`--tools`](/docs/ko/cli-reference#cli-flags)에 도구를 나열하십시오. 이는 세션의 기본 제공 도구를 명시된 도구로 제한합니다. 사용하는 다른 기본 제공 도구와 함께 원하는 도구를 포함하십시오
590* Agent SDK에서 [`allowedTools` 및 `tools` 옵션](/docs/ko/agent-sdk/todo-tracking#model-availability)은 두 플래그와 동일한 방식으로 작동합니다
591
592[백그라운드 세션](/docs/ko/agent-view)과 [웹의 Claude Code](/docs/ko/claude-code-on-the-web)에서는 Claude Code가 나열된 모든 모델에서 동일한 도구를 제공합니다.
593
594Claude Code는 세션에 도구가 있을 때만 서브에이전트에 도구를 제공하며, 서브에이전트가 다른 모델을 실행하더라도 마찬가지입니다. 프로세스 내 [에이전트 팀](/docs/ko/agent-teams) 팀원은 세션을 동일한 방식으로 따르지만, [분할 창](/docs/ko/agent-teams#choose-a-display-mode)의 자체 팀원은 별도의 Claude Code 프로세스로 실행되므로 자체 모델이 결정합니다. Task 도구가 없으면 에이전트는 [공유 작업 목록](/docs/ko/agent-teams#assign-and-claim-tasks) 대신 메시지를 통해 팀과 조정합니다.
347 595
348<h2 id="webfetch-tool-behavior">596<h2 id="webfetch-tool-behavior">
349 WebFetch 도구 동작597 WebFetch 도구 동작
350</h2>598</h2>
351 599
352WebFetch는 URL과 추출할 내용을 설명하는 프롬프트를 가져옵니다. 페이지를 가져오고, 서버가 HTML을 반환할 때 응답을 Markdown으로 변환하며, 작고 빠른 모델을 사용하여 콘텐츠에 대해 프롬프트를 실행합니다. 대부분의 가져오기의 경우, Claude는 원본 페이지가 아닌 해당 모델의 답변을 받습니다. 변환 단계는 구성할 수 없습니다.600WebFetch는 URL과 추출할 내용을 설명하는 프롬프트를 받습니다. 페이지를 가져오고, 서버가 HTML을 반환할 때 응답을 Markdown으로 변환한 후, 작은 빠른 모델을 사용하여 프롬프트를 콘텐츠에 대해 실행합니다. 대부분의 가져오기에서 Claude는 원본 페이지가 아닌 해당 모델의 답변을 받습니다. 변환 단계는 구성할 수 없습니다.
353 601
354이는 WebFetch를 설계상 손실이 있게 만듭니다. 추출 프롬프트는 Claude에 도달하는 내용을 결정하므로, 페이지가 무언가를 언급하지 않는다는 결과는 프롬프트가 그것을 묻지 않았다는 의미일 수 있습니다. Claude에 더 구체적인 프롬프트로 다시 가져오도록 요청하거나, 처리되지 않은 페이지의 경우 Bash를 통해 `curl`을 사용합니다.602이는 WebFetch가 설계상 손실이 있다는 의미입니다. 추출 프롬프트가 Claude에 도달하는 내용을 결정하므로, 페이지가 무언가를 언급하지 않는다고 말하는 결과는 프롬프트가 그것을 묻지 않았다는 의미일 수 있습니다. Claude에 더 구체적인 프롬프트로 다시 가져오도록 요청하거나, 처리되지 않은 페이지를 위해 Bash를 통해 `curl`을 사용하십시오.
355 603
356몇 가지 동작이 Claude가 받는 응답을 형성합니다:604몇 가지 동작이 Claude가 받는 응답을 형성합니다:
357 605
358* HTTP URL은 자동으로 HTTPS로 업그레이드됩니다.606* HTTP URL은 자동으로 HTTPS로 업그레이드됩니다.
359* 큰 페이지는 처리 전에 고정 문자 제한으로 잘립니다.607* 큰 페이지는 처리 전에 고정된 문자 제한으로 잘립니다.
360* 응답은 15분 동안 캐시되므로, 동일한 URL의 반복 가져오기는 빠르게 반환됩니다.608* WebFetch는 기본적으로 각 응답을 15분 동안 캐시하므로, 동일한 URL의 반복된 가져오기가 빠르게 반환됩니다. Claude Code v2.1.233 이상에서는 [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/ko/env-vars#variables)를 설정하여 WebFetch가 각 응답을 유지하는 기간을 변경할 수 있습니다.
361* URL이 다른 호스트로 리다이렉트되면, WebFetch는 원본 URL과 리다이렉트 대상의 이름을 지정하는 텍스트 결과를 반환하고 따라가지 않습니다. Claude는 두 번째 WebFetch 호출로 새 URL을 가져옵니다.609* URL이 다른 호스트로 리디렉션될 때, WebFetch는 원본 URL과 리디렉션 대상을 이름으로 지정하는 텍스트 결과를 반환하고 따라가지 않습니다. 그러면 Claude는 두 번째 WebFetch 호출로 새 URL을 가져옵니다.
610* 추출 단계가 과부하 API에 도달하면, Claude Code는 백오프로 재시도합니다. 여전히 실패하는 가져오기는 오류 결과를 반환합니다. v2.1.212 이전에는 API 오류 텍스트가 추출된 페이지 콘텐츠인 것처럼 Claude에 도달할 수 있었습니다.
611
612Manual 및 `acceptEdits` [권한 모드](/docs/ko/permission-modes)에서, WebFetch는 가져오기 전에 프롬프트를 표시합니다. 단, [권한 규칙](/docs/ko/permissions#manage-permissions)이 이미 허용하거나 거부하는 도메인과 프롬프트 없이 가져오는 사전 승인된 문서 도메인의 기본 제공 집합은 제외됩니다. 규칙이 허용하는 것이 무엇이든, 가져오기는 먼저 [WebFetch 도메인 안전 검사](/docs/ko/data-usage#webfetch-domain-safety-check)를 통과합니다. 해당 섹션에서는 검사가 전송하는 내용과 이를 건너뛰는 설정을 다룹니다. 프롬프트는 세 가지 옵션을 제공합니다:
362 613
363기본 및 `acceptEdits` 권한 모드에서 WebFetch는 새 도메인에 처음 도달할 때 프롬프트합니다. 단, 프롬프트 없이 가져오는 미리 승인된 설명서 도메인의 기본 제공 집합이 있습니다. 프롬프트 없이 미리 도메인을 허용하려면 `WebFetch(domain:example.com)`과 같은 권한 규칙을 추가합니다. `auto` 및 `bypassPermissions` [권한 모드](/docs/ko/permissions#permission-modes)는 프롬프트를 완전히 건너뜁니다.614* **Yes**: 이 가져오기만 승인합니다. 다음 WebFetch 호출은 동일한 도메인이더라도 다시 프롬프트를 표시합니다.
615* **Yes, and don't ask again for `<domain>`**: 가져오기를 승인하고 해당 도메인에 대한 `WebFetch(domain:...)` 허용 규칙을 해당 저장소의 `.claude/settings.local.json`에 저장합니다. [저장된 승인이 지속되는 방식](/docs/ko/permissions#permission-system)을 참조하십시오. 조직이 [`allowManagedPermissionRulesOnly`](/docs/ko/permissions#managed-only-settings)를 설정하면, Claude Code는 이 옵션을 숨깁니다.
616* **No, and tell Claude what to do differently**: 가져오기를 거부합니다.
364 617
365`deny`, `ask` 또는 `allow`의 명시적 `WebFetch(domain:...)` 규칙은 미리 승인된 집합보다 우선하므로, 미리 승인된 도메인을 차단하거나 프롬프트를 요구할 수 있습니다.618프롬프트 없이 미리 도메인을 허용하려면, `WebFetch(domain:example.com)`과 같은 허용 규칙을 추가하십시오. `WebFetch(domain:*)`는 모든 도메인을 허용합니다. `auto` 및 `bypassPermissions` [권한 모드](/docs/ko/permissions#permission-modes)는 명시적 `ask` 규칙이 일치하는 도메인을 제외하고 프롬프트를 건너뜁니다.
366 619
367WebFetch는 `Claude-User`로 시작하는 `User-Agent` 헤더와 콘텐츠 협상을 지원하는 서버가 Markdown을 직접 반환할 수 있도록 HTML보다 Markdown을 선호하는 `Accept` 헤더를 설정합니다. [Sandbox](/docs/ko/sandboxing) 네트워크 규칙은 별도로 구성되므로, sandboxed 프로세스가 도달하기를 원하는 도메인은 여전히 명시적 sandbox 권한 규칙이 필요합니다.620`deny`, `ask` 또는 `allow`의 명시적 `WebFetch(domain:...)` 규칙은 사전 승인된 집합보다 우선하므로, 사전 승인된 도메인을 차단하거나 이에 대한 프롬프트를 요구할 수 있습니다.
621
622WebFetch는 `Claude-User`로 시작하는 `User-Agent` 헤더와 콘텐츠 협상을 지원하는 서버가 Markdown을 직접 반환할 수 있도록 HTML보다 Markdown을 선호하는 `Accept` 헤더를 설정합니다.
623
624샌드박스된 명령은 WebFetch의 사전 승인된 문서 도메인의 기본 제공 집합을 상속하지 않습니다. 샌드박스된 명령이 프롬프트 없이 도메인에 도달하도록 하려면, 도메인을 [`allowedDomains`](/docs/ko/settings-reference#sandbox-network-alloweddomains)에 추가하거나 `WebFetch(domain:...)` 규칙으로 허용하십시오. [샌드박스도 이를 준수합니다](/docs/ko/sandboxing#network-isolation). WebFetch는 반대로 샌드박스 허용 목록을 읽지 않으므로, 샌드박스 또는 조직 네트워크 허용 목록에 도메인을 추가해도 WebFetch가 이에 대해 프롬프트를 표시하는 것을 중단하지 않습니다.
368 625
369<h2 id="websearch-tool-behavior">626<h2 id="websearch-tool-behavior">
370 WebSearch 도구 동작627 WebSearch 도구 동작
371</h2>628</h2>
372 629
373WebSearch는 Anthropic의 [web search](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/web-search-tool) 백엔드에 대해 쿼리를 실행하고 결과 제목과 URL을 반환합니다. 결과 페이지를 가져오지 않습니다. Claude가 검색 결과에서 찾은 페이지를 읽으려면 [WebFetch](#webfetch-tool-behavior)로 후속 조치합니다.630WebSearch는 Anthropic의 [웹 검색](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) 백엔드에 대해 쿼리를 실행하고 결과 제목과 URL을 반환합니다. 결과 페이지를 가져오지는 않습니다. Claude가 검색 결과에서 찾은 페이지를 읽으려면 [WebFetch](#webfetch-tool-behavior)로 후속 조치를 합니다.
631
632이 도구는 호출당 최대 8개의 백엔드 검색을 실행하여 결과를 반환하기 전에 검색을 내부적으로 개선할 수 있습니다. Claude는 `allowed_domains`으로 특정 호스트만 포함하거나 `blocked_domains`으로 제외하여 결과의 범위를 지정할 수 있습니다. 두 목록은 단일 호출에서 결합할 수 없습니다.
374 633
375이 도구는 호출당 최대 8개의 백엔드 검색을 발행하여 반환 전에 검색을 내부적으로 개선할 수 있습니다. Claude는 `allowed_domains`로 특정 호스트만 포함하거나 `blocked_domains`로 제외하여 결과를 범위 지정할 수 있습니다. 두 목록은 단일 호출에서 결합할 수 없습니다.634검색 요청이 과부하 상태의 API에 도달하면 Claude Code는 백오프를 사용하여 재시도합니다. 여전히 실패하는 호출은 오류 결과를 반환합니다. v2.1.212 이전에는 API 오류 텍스트가 검색 결과인 것처럼 Claude에 도달할 수 있었습니다.
376 635
377검색 백엔드는 구성할 수 없습니다. 다른 제공자로 검색하려면 검색 도구를 노출하는 [MCP 서버](/docs/ko/mcp)를 추가합니다.636WebSearch 권한 규칙은 지정자를 사용하지 않습니다. `allow` 또는 `deny`의 단순한 `WebSearch` 항목이 유일한 형식입니다.
378 637
379WebSearch 권한 규칙은 specifier를 사용하지 않습니다. `allow` 또는 `deny`의 단순 `WebSearch` 항목이 유일한 형식입니다.638검색 백엔드는 구성할 수 없습니다. 다른 공급자로 검색하려면 검색 도구를 노출하는 [MCP 서버](/docs/ko/mcp)를 추가합니다.
380 639
381<Note>640<Note>
382 WebSearch는 Claude API, [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws) 및 Microsoft Foundry에서 사용 가능합니다. Google Cloud의 Agent Platform에서는 Opus, Sonnet 및 Haiku를 포함한 Claude 4 이상 모델과 함께 작동합니다. Amazon Bedrock은 서버 측 web search 도구를 노출하지 않습니다.641 WebSearch는 Claude API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws)에서 사용할 수 있습니다. Microsoft Foundry에서는 [Anthropic에서 호스팅하는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)가 필요합니다. Azure에서 호스팅하는 배포는 서버 측 도구를 지원하지 않으므로 WebSearch 호출이 실패합니다. Google Cloud의 Agent Platform에서는 Opus, Sonnet, Haiku를 포함한 Claude 4 이상 모델에서 작동합니다. Amazon Bedrock은 서버 측 웹 검색 도구를 노출하지 않습니다.
383</Note>642</Note>
384 643
644<h3 id="session-search-limit">
645 세션 검색 제한
646</h3>
647
648세션은 최대 200개의 WebSearch 호출을 수행할 수 있으며, 이는 주 대화와 생성하는 모든 [하위 에이전트](/docs/ko/sub-agents)에서 계산되므로 병렬 연구 팬아웃에서 수행한 검색도 동일한 제한에 포함됩니다. 이 제한에는 Claude Code v2.1.212 이상이 필요합니다. Claude가 제한에 도달하면 추가 호출은 재시도를 유도할 오류 대신 Claude에 이미 수집한 정보로 계속 진행하도록 지시하는 알림을 반환합니다. 사용자는 알림을 볼 수 없습니다. 제한된 호출은 대화에 아무것도 하지 않은 검색으로 표시되며, Claude에 더 많은 검색이 필요한 경우 알림은 제한을 높이도록 요청하도록 지시합니다.
649
650[`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/ko/env-vars) 환경 변수를 설정하여 제한을 변경합니다. 양의 정수를 허용하므로 제한을 높일 수 있지만 끌 수는 없습니다. [`/clear`](/docs/ko/commands#all-commands)를 실행하면 개수가 재설정됩니다. 실행 중인 워크플로우와 같이 여전히 [하위 에이전트](/docs/ko/sub-agents)를 생성할 수 있는 작업이 명확한 후에도 남아 있으면 개수가 대신 이월됩니다.
651
385<h2 id="write-tool-behavior">652<h2 id="write-tool-behavior">
386 Write 도구 동작653 Write 도구 동작
387</h2>654</h2>
388 655
389Write 도구는 제공된 전체 콘텐츠로 새 파일을 생성하거나 기존 파일을 덮어씁니다. 추가하거나 병합하지 않습니다.656Write 도구는 새 파일을 생성하거나 기존 파일을 제공된 전체 콘텐츠로 덮어씁니다. 추가하거나 병합하지 않습니다.
657
658Claude가 기존 파일을 덮어쓰기 전에 현재 대화에서 읽어야 하는지 여부는 모델과 파일에 따라 다릅니다.
659
660* Claude Opus 4.6, Claude Haiku 4.5 및 이전 모델은 항상 읽기를 요구하므로, 읽지 않은 기존 파일에 대한 Write는 오류로 실패합니다.
661* 최신 모델은 [읽기-편집 전 동작](#edit-tool-behavior)과 동일한 조건에서 이 세션에서 읽지 않은 파일을 덮어쓸 수 있습니다. 읽기에 권한 프롬프트가 필요하지 않고 Read 도구를 사용할 수 있습니다.
662* Jupyter 노트북 및 [`PARTIAL view` 공지](#read-tool-behavior)가 있는 부분적으로만 읽은 파일은 모든 모델에서 읽기를 요구합니다.
390 663
391대상 경로가 이미 존재하면, Claude는 현재 대화에서 해당 파일을 최소한 한 번 읽었어야 합니다. 읽지 않은 기존 파일에 대한 Write는 오류로 실패합니다. 이 제약은 새 파일에는 적용되지 않습니다.664이 제약은 새 파일에는 적용되지 않습니다. v2.1.228 이전에는 모든 모델이 기존 파일을 덮어쓰기 전에 읽기를 요구했습니다.
392 665
393Bash로 파일을 보는 것도 [Edit 도구 동작](#edit-tool-behavior)에서 설명한 대로 이 요구사항을 만족합니다.666Bash를 사용하여 파일을 보는 것도 [Edit 도구 동작](#edit-tool-behavior)에 설명된 동일한 규칙에 따라 이 요구사항을 충족합니다.
394 667
395기존 파일에 대한 부분 변경의 경우, Claude는 Write 대신 Edit을 사용합니다.668기존 파일에 대한 부분적 변경의 경우 Claude는 Write 대신 Edit을 사용합니다.
396 669
397<h2 id="check-which-tools-are-available">670<h2 id="check-which-tools-are-available">
398 사용 가능한 도구 확인671 사용 가능한 도구 확인