메인 콘텐츠로 건너뛰기
환경 변수는 모델 선택, 인증, 요청 라우팅 및 기능 토글과 같은 Claude Code 동작을 제어할 수 있습니다. 동일한 동작의 대부분은 설정 파일 필드, CLI 플래그 또는 /model과 같은 세션 내 명령을 통해서도 구성할 수 있습니다. 이 페이지에서는 다음을 다룹니다:

환경 변수 설정

셸에서 설정한 변수는 해당 터미널 세션 동안만 유지되며, 설정 파일의 변수는 claude가 실행될 때마다 적용됩니다.

셸에서 변수 설정

claude를 실행하기 전에 변수를 설정합니다:
모든 세션에서 설정하려면 ~/.bashrc, ~/.zshrc 또는 셸의 프로필 파일에 export 줄을 추가합니다.
할당 줄은 성공 시 아무것도 출력하지 않습니다. 변수가 설정되었는지 확인하려면 같은 셸에서 변수를 출력합니다:

설정 파일에서 변수 설정

settings.json 파일의 env 키 아래에 변수를 추가하고, 파일이 없으면 생성합니다. Claude Code는 파일에서 직접 읽으므로 claude가 어떻게 실행되었는지와 관계없이 적용됩니다. 실행 중인 세션은 파일을 저장할 때 새로운 값과 변경된 값을 환경에 적용하지만, OpenTelemetry 모니터링과 같이 시작 시 변수를 한 번만 읽는 기능은 다시 실행할 때까지 시작 값을 유지합니다. 파일에서 변수를 제거해도 실행 중인 세션에서 설정 해제되지 않으며, 제거는 다음 번 claude를 실행할 때 적용됩니다.
~/.claude/settings.json
Claude Code는 이 값들을 작성된 그대로 환경에 복사합니다. 셸이 값을 처리하지 않으므로 ~나 $HOME 같은 축약 표기는 입력한 그대로 유지됩니다. CLAUDE_CONFIG_DIR처럼 경로를 받는 변수에는 절대 경로를 작성합니다: "CLAUDE_CONFIG_DIR": "/home/you/.claude-work". 선택한 파일은 변수가 적용되는 대상을 제어합니다: 각 파일이 있는 위치는 설정 파일을 참조하고, 둘 이상이 같은 변수를 설정할 때 결합되는 방식은 설정 우선순위를 참조합니다.

우선순위

일부 동작은 환경 변수와 전용 설정 키 모두를 가지고 있으며, Claude Code가 어느 것을 먼저 읽는지는 키마다 다릅니다. ANTHROPIC_MODEL과 CLAUDE_CODE_AUTO_CONNECT_IDE의 경우, Claude Code는 변수를 먼저 읽고 변수가 설정되지 않았을 때만 model 또는 autoConnectIde 설정을 사용합니다. 설정하려는 쌍의 경우, 아래의 변수 행과 설정 참조의 키 항목을 확인하십시오. 동일한 변수가 셸과 설정 파일 env 블록 모두에 설정된 경우, 대부분의 세션에서 설정 파일 값이 적용됩니다. Claude Code는 각 env 항목을 프로세스 환경에 기록하여 셸에서 상속된 값을 대체합니다. env 값이 셸과 상호 작용하는 방식은 대신 상속된 값을 유지하는 세션을 다루며, env 설정은 언제 적용되는지를 나타냅니다. 몇 가지 변수는 특별하게 처리됩니다. env 설정은 예외를 나열합니다. 설정 파일에서 변수를 설정할 수 있지만 제거할 수는 없습니다. 제어하지 않는 셸 프로필에서 내보낸 CLAUDE_CODE_USE_VERTEX와 같이 설정 해제할 수 없는 변수를 재정의하려면, env 블록에서 빈 문자열로 설정하십시오: "CLAUDE_CODE_USE_VERTEX": "". Claude Code는 빈 값을 공급자 선택을 위해 설정 해제된 것으로 취급합니다. 하위 프로세스는 여전히 빈 값을 상속합니다. 설정 파일 간에 env 값은 설정 우선순위를 따르므로, 관리되는 설정 항목이 사용자 또는 프로젝트 설정의 동일한 변수를 재정의합니다. 프로젝트 및 로컬 설정은 CLAUDE_CONFIG_DIR 및 OpenTelemetry 내보내기 변수와 같은 일부 변수를 설정할 수 없습니다. env에서 Claude Code가 무시하는 변수는 이들을 나열하며, 여전히 적용되는 OpenTelemetry 끄기 값도 나열합니다. 환경 변수가 CLI 플래그 및 세션 내 명령과 상호 작용하는 방식은 기능마다 다릅니다: --model과 /model은 ANTHROPIC_MODEL을 재정의하고, CLAUDE_CODE_EFFORT_LEVEL은 --effort와 /effort를 재정의합니다. 변수가 다른 구성 소스와 상호 작용할 때, 변수 목록의 해당 행은 우선순위를 나타내거나 이를 문서화하는 페이지로 연결됩니다. Claude Code는 시작 시 셸 환경 변수를 읽으므로, 이에 대한 변경 사항은 다음에 claude를 시작할 때 적용됩니다. 설정 파일의 env 키 아래에 설정된 변수는 파일이 변경될 때 실행 중인 세션에 다시 적용되며, 설정 파일에서 변수 설정하기에 설명된 시작 전용 예외가 있습니다.

변수

타임아웃, 토큰 예산, 재시도 횟수 같은 숫자 변수는 일반 숫자 외에도 과학적 표기법과 자릿수 구분자 표기를 허용합니다. 단, 변수 행에 일반 숫자만 허용한다고 명시된 경우는 예외입니다. 예를 들어 Claude Code는 2e3을 2000으로, 64_000을 64000으로 읽습니다. v2.1.211 이전에는 1e6이 타임아웃을 1로 설정하는 것처럼, 이러한 표기가 아무 알림 없이 훨씬 작은 값을 설정할 수 있었습니다.
동작을 켜거나 끄는 변수의 경우, 대소문자에 관계없이 1, true, yes, on으로 설정하면 켜지고 0, false, no, off로 설정하면 꺼집니다.일부 변수는 설정 여부만 확인하므로 0을 포함해 비어 있지 않은 모든 값이 동작을 켜며, 동작을 끄려면 변수를 설정 해제하거나 빈 값으로 설정해야 합니다. 다음 변수가 이 방식으로 동작합니다:
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
  • DISABLE_TELEMETRY
  • DISABLE_ERROR_REPORTING
  • CLAUDE_CODE_TMUX_TRUECOLOR
  • IS_DEMO
각 변수의 행에도 해당 변수의 규칙이 명시되어 있습니다.
표준 OpenTelemetry 익스포터 변수(OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER, OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_HEADERS, OTEL_METRIC_EXPORT_INTERVAL, OTEL_RESOURCE_ATTRIBUTES 및 신호별 변형)도 지원됩니다. 구성 세부 정보는 모니터링을 참조하세요. CLAUDE_CODE_ENABLE_TELEMETRY와 내보내기를 켜거나, 대상을 선택하거나, 콘텐츠를 캡처하는 OpenTelemetry 변수는 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. Claude Code는 해당 섹션에서 설명하는 끄기 값을 제외하고 프로젝트 및 로컬 설정에서 이들을 무시합니다. OTEL_RESOURCE_ATTRIBUTES와 OTEL_METRIC_EXPORT_INTERVAL 같은 내보내기 간격, 타임아웃, 압축 변수는 프로젝트 및 로컬 설정에서도 계속 적용됩니다.

하위 프로세스 환경 정리가 제거하는 항목

CLAUDE_CODE_SUBPROCESS_ENV_SCRUB를 1로 설정하면 Claude Code는 Bash 명령, 훅, stdio MCP 서버 등 자신이 시작하는 하위 프로세스의 환경에서 자격 증명을 제거합니다. 이를 통해 프롬프트 인젝션 공격이 읽을 수 있는 정보가 줄어듭니다. Claude Code 프로세스는 자체 API 호출을 위해 자격 증명을 유지합니다. 환경 정리는 변수 이름이나 값의 형태로 자격 증명을 식별하므로, 유일한 통제 수단이 아니라 범위를 좁게 지정한 권한 규칙과 함께 하나의 보안 계층으로 사용하십시오. 다음 표는 예시 변수에 대해 환경 정리가 수행하는 작업을 보여 줍니다. 환경 정리는 GITHUB_TOKEN을 그대로 두므로, GitHub Actions 작업에는 필요한 최소한의 permissions만 부여하십시오. 샌드박스 처리된 Bash 명령에서 GitHub 토큰을 제거하려면 sandbox.credentials 아래에 deny 항목을 추가하십시오. 하위 프로세스에 제거 대상 변수 중 하나가 필요한 경우에는 환경 정리를 설정하지 마십시오. Linux에서는 환경 정리가 Bash 하위 프로세스를 격리된 PID 네임스페이스에서 실행하므로, 하위 프로세스가 /proc를 통해 호스트 프로세스의 환경을 읽을 수 없습니다. 그 부수 효과로 ps, pgrep, kill은 호스트 프로세스를 확인하거나 호스트 프로세스에 시그널을 보낼 수 없습니다. v2.1.251 이전에는 환경 정리가 ANTHROPIC_API_KEY와 AWS_SECRET_ACCESS_KEY를 제거하고 표의 나머지 예시 변수는 변경하지 않았습니다.

기능 플래그 가져오기가 필요한 기능

Claude Code는 Anthropic에서 가져오는 기능 플래그를 통해 일부 기능을 켭니다. Claude Code는 다음 세션에서는 이 가져오기를 건너뜁니다.
  • CLAUDE_CODE_DISABLE_FEATURE_FLAGS, DISABLE_TELEMETRY, DO_NOT_TRACK 또는 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC을 설정한 세션. 어떤 값이 가져오기를 끄는지는 변수 표의 각 변수 행에 나와 있습니다
  • Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform 또는 Microsoft Foundry와 같은 서드파티 제공자를 사용하는 세션. 단, Claude Code를 내장한 호스트 플랫폼이 CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST를 설정한 경우는 예외입니다
  • Claude apps 게이트웨이 세션
가져오기가 꺼져 있으면 다음 작업을 할 수 없습니다.

설치 또는 업그레이드 후 첫 세션

Claude Code를 설치한 후 또는 새 기능이 추가된 버전으로 업그레이드한 후 첫 세션에서는 플래그로 제어되는 기능이 누락될 수 있습니다. Claude Code가 해당 세션 중에 기능 플래그를 가져오면 이를 머신에 저장하므로, 해당 머신의 다음 세션에서는 기능이 제공됩니다. 다음과 같은 구성에서는 첫 세션 이후의 세션도 새로 가져온 플래그 없이 시작됩니다.
  • 매 실행마다 깨끗한 환경: 각 실행이 CI 컨테이너 또는 이전 세션이 저장한 플래그가 없는 다른 환경에서 시작되는 경우, 모든 실행이 첫 세션이 됩니다
  • API 키 없는 게이트웨이 토큰: API 키 없이 ANTHROPIC_AUTH_TOKEN으로 인증하고 ANTHROPIC_BASE_URL이 LLM 게이트웨이와 같이 Anthropic이 아닌 호스트를 가리키는 경우, Claude Code에는 플래그를 가져오는 데 사용할 자격 증명이 없습니다

참고 항목