저자 주: Claude Code의 60개 이상 환경 변수 역할과 설정 방법을 자세히 알아봅니다. 특히 AWS Bedrock 등에서 발생하는 anthropic-beta 헤더 오류를 해결하기 위한 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 설정에 집중해 보겠습니다.
Claude Code를 사용하여 AWS Bedrock, Google Vertex AI 또는 기타 제3자 대규모 언어 모델(LLM) 게이트웨이에 연결할 때, "Unexpected value(s) for the anthropic-beta header"라는 오류를 한 번쯤 겪어보셨을 겁니다. 이 문제의 근본 원인은 Claude Code가 기본적으로 Anthropic API 전용 실험적 Beta 헤더를 전송하기 때문인데, AWS Bedrock과 같은 제3자 플랫폼은 이 헤더를 인식하지 못해 오류가 발생합니다.
해결 방법은 단 한 줄의 설정으로 충분합니다: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.
하지만 Claude Code의 환경 변수는 이외에도 매우 다양합니다. 공식 문서에는 인증 설정, 모델 선택, 성능 최적화, 기능 스위치 등 60개 이상의 환경 변수가 나열되어 있습니다. 이 글에서는 이러한 환경 변수들을 체계적으로 정리하여, Claude Code 사용 중 발생하는 다양한 설정 문제를 신속하게 해결할 수 있도록 도와드리겠습니다.
핵심 가치: 이 글을 읽고 나면 Claude Code 환경 변수의 전체 체계를 파악하여 AWS Bedrock/Vertex AI 호환성 문제를 신속하게 해결하고, 환경 변수를 통해 Claude Code의 사용 경험과 비용을 최적화하는 방법을 배우게 됩니다.

Claude Code 환경 변수 핵심 요점
Claude Code의 60개 이상 환경 변수는 크게 6가지 범주로 나눌 수 있습니다. 다음은 가장 주의 깊게 살펴봐야 할 핵심 변수들입니다.
| 범주 | 핵심 변수 | 역할 | 주요 사용 시나리오 |
|---|---|---|---|
| 플랫폼 호환성 | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
anthropic-beta 실험적 헤더 비활성화 | AWS Bedrock/Vertex AI 오류 해결 |
| 인증 설정 | ANTHROPIC_API_KEY |
API 키 설정 | 제3자 API 플랫폼을 통한 모델 호출 시 |
| 모델 선택 | ANTHROPIC_MODEL |
사용할 모델 지정 | 특정 모델 버전으로 전환 |
| 성능 최적화 | CLAUDE_CODE_MAX_OUTPUT_TOKENS |
최대 출력 토큰 제어 | 긴 답변 제한을 통한 비용 절감 |
| 기능 스위치 | DISABLE_PROMPT_CACHING |
프롬프트 캐싱 비활성화 | 디버깅 또는 호환성 문제 해결 시 |
| 컨텍스트 관리 | CLAUDE_AUTOCOMPACT_PCT_OVERRIDE |
컨텍스트 자동 압축 임계값 제어 | 긴 대화 시 사용자 경험 최적화 |
Claude Code 환경 변수 설정의 두 가지 방법
방법 1: Shell 환경 변수 (임시 적용)
터미널에서 설정 후 Claude Code를 실행하며, 현재 세션에서만 유효합니다.
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export ANTHROPIC_API_KEY="your-api-key"
claude
방법 2: settings.json 설정 (영구 적용)
~/.claude/settings.json 파일의 env 필드에 구성하면 실행 시마다 자동으로 로드됩니다.
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"ANTHROPIC_API_KEY": "your-api-key"
}
}
🎯 추천 방식: API 키나 플랫폼 호환성 수정과 같이 장기적으로 적용해야 하는 설정은 settings.json 방식을 사용하는 것이 좋습니다. 매번 수동으로 export할 필요가 없으니까요. 만약 APIYI(apiyi.com)와 같은 제3자 플랫폼의 API 키를 사용하신다면, 여기서 동일하게 설정하시면 됩니다.

Claude Code 환경 변수 중점 해설: AWS Bedrock 호환성 문제 해결하기
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 상세 설명
이 설정은 이번 가이드의 핵심입니다. AWS Bedrock, Google Vertex AI, LiteLLM 등 제3자 게이트웨이를 통해 Claude Code를 사용할 때, Claude Code는 요청 헤더에 Anthropic의 실험적 베타(Beta) 식별자를 자동으로 추가합니다. 예를 들면 다음과 같습니다:
anthropic-beta: prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20
이러한 베타 식별자는 Anthropic 직결 API 전용 기능이라서, AWS Bedrock 같은 제3자 플랫폼에서는 이를 인식하지 못하고 다음과 같은 오류를 반환하게 됩니다:
Error: Unexpected value(s) for the anthropic-beta header
해결 방법:
# 방법 1: Shell 명령어
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# 방법 2: settings.json 설정
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
이 값을 1로 설정하면 Claude Code가 더 이상 실험적 베타 헤더를 보내지 않으므로, 모든 제3자 플랫폼과 원활하게 호환됩니다.
알려진 문제 및 임시 해결책
GitHub Issues 기록에 따르면, 일부 Claude Code 버전(2.1.18 이후)에서 해당 환경 변수가 완전히 적용되지 않는 버그가 있습니다. CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1을 설정했음에도 불구하고 advanced-tool-use-2025-11-20과 같은 새로운 베타 헤더가 여전히 전송되는 경우가 발생할 수 있습니다.
여전히 문제가 발생한다면 다음 추가 조치를 시도해 보세요:
- Claude Code 버전 다운그레이드: 2.1.68 등 안정성이 확인된 버전으로 되돌립니다.
- LiteLLM 게이트웨이 사용: LiteLLM은
anthropic_beta_headers_config.json설정 파일을 통해 어떤 베타 헤더를 전달할지 세밀하게 제어할 수 있는 기능을 제공합니다. - DISABLE_PROMPT_CACHING 함께 설정: 프롬프트 캐싱을 비활성화하면
prompt-caching-scope관련 베타 헤더가 생성되는 것을 방지할 수 있습니다.
# 전체 호환성 설정
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_PROMPT_CACHING=1
Claude Code 환경 변수 전체 카테고리 요약
1. 인증 및 API 설정
가장 기본적이면서 자주 사용되는 환경 변수들로, Claude Code가 API 서비스에 연결되는 방식을 제어합니다.
| 변수명 | 역할 | 사용 시나리오 |
|---|---|---|
ANTHROPIC_API_KEY |
API 키, X-Api-Key 헤더로 전송됨 | 제3자 API 플랫폼(예: APIYI apiyi.com) 사용 시 |
ANTHROPIC_AUTH_TOKEN |
사용자 정의 Authorization 헤더 값 (Bearer 접두사 자동 추가) | 커스텀 인증 체계 사용 시 |
ANTHROPIC_CUSTOM_HEADERS |
사용자 정의 요청 헤더 추가 (Name: Value 형식) | 추가 헤더가 필요한 게이트웨이 사용 시 |
ANTHROPIC_BASE_URL |
사용자 정의 API 엔드포인트 주소 | 제3자 API 중계 서비스 연결 시 |
CLAUDE_CODE_CLIENT_CERT |
mTLS 클라이언트 인증서 경로 | 기업용 보안 인증 시 |
CLAUDE_CODE_CLIENT_KEY |
mTLS 개인키 경로 | 기업용 보안 인증 시 |
🎯 제3자 플랫폼 사용자 주의사항: APIYI(apiyi.com)와 같은 제3자 API 플랫폼을 사용할 때는
ANTHROPIC_API_KEY와ANTHROPIC_BASE_URL을 동시에 설정해야 합니다. Claude Code는 Anthropic 구독 계정에 로그인되어 있더라도 환경 변수에 설정된 API 키를 우선적으로 사용합니다.
2. 모델 선택 및 설정
Claude Code가 사용할 모델과 모델의 동작 파라미터를 제어합니다.
| 변수명 | 역할 | 기본값 |
|---|---|---|
ANTHROPIC_MODEL |
주 모델 이름 지정 | Claude Sonnet 4.6 |
ANTHROPIC_DEFAULT_OPUS_MODEL |
Opus급 모델 지정 | Claude Opus 4.6 |
ANTHROPIC_DEFAULT_SONNET_MODEL |
Sonnet급 모델 지정 | Claude Sonnet 4.6 |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
Haiku급 모델 지정 (백그라운드 작업용) | Claude Haiku 4.5 |
CLAUDE_CODE_SUBAGENT_MODEL |
서브 에이전트가 사용하는 모델 | 주 모델 설정을 상속함 |
CLAUDE_CODE_MAX_OUTPUT_TOKENS |
최대 출력 토큰 수 | 32,000 (최대 64,000) |
CLAUDE_CODE_EFFORT_LEVEL |
추론 깊이 (low/medium/high/max/auto) | auto |
3. 플랫폼 호환성 및 게이트웨이 설정
Claude Code와 다양한 클라우드 플랫폼 및 LLM 게이트웨이 간의 호환성 문제를 해결하기 위한 변수들입니다.
| 변수명 | 역할 | 적용 플랫폼 |
|---|---|---|
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
실험적 베타 헤더 비활성화 | AWS Bedrock / Vertex AI / 제3자 게이트웨이 |
CLAUDE_CODE_USE_BEDROCK |
AWS Bedrock 모드 활성화 | AWS Bedrock |
CLAUDE_CODE_SKIP_BEDROCK_AUTH |
AWS 인증 건너뛰기 (게이트웨이 사용 시) | LLM 게이트웨이 + Bedrock |
CLAUDE_CODE_USE_FOUNDRY |
Microsoft Foundry 모드 활성화 | Azure AI |
CLAUDE_CODE_SKIP_FOUNDRY_AUTH |
Azure 인증 건너뛰기 | LLM 게이트웨이 + Azure |
CLAUDE_CODE_SKIP_VERTEX_AUTH |
Google Vertex 인증 건너뛰기 | LLM 게이트웨이 + Vertex |
ANTHROPIC_FOUNDRY_BASE_URL |
Foundry 리소스의 기본 URL | Microsoft Foundry |
ANTHROPIC_FOUNDRY_API_KEY |
Foundry API 키 | Microsoft Foundry |
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION |
Haiku 모델의 AWS 리전 | Bedrock 멀티 리전 |
4. 기능 스위치
DISABLE_ 또는 CLAUDE_CODE_DISABLE_ 접두사가 붙은 변수를 통해 특정 기능을 끌 수 있습니다.
| 변수명 | 1로 설정 시 효과 |
|---|---|
DISABLE_PROMPT_CACHING |
프롬프트 캐싱 비활성화 |
DISABLE_AUTOUPDATER |
자동 업데이트 비활성화 |
DISABLE_TELEMETRY |
텔레메트리 데이터 수집 비활성화 |
DISABLE_ERROR_REPORTING |
오류 보고 비활성화 |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC |
위의 모든 불필요한 트래픽 일괄 비활성화 |
CLAUDE_CODE_DISABLE_AUTO_MEMORY |
자동 기억 기능 비활성화 |
CLAUDE_CODE_DISABLE_1M_CONTEXT |
100만 토큰 컨텍스트 윈도우 비활성화 |
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING |
자가 적응형 추론 비활성화 |
CLAUDE_CODE_DISABLE_FAST_MODE |
패스트 모드 비활성화 |
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS |
백그라운드 작업 기능 비활성화 |
CLAUDE_CODE_DISABLE_CRON |
예약 작업(Cron) 비활성화 |
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS |
내장 Git 지침 제거 |
5. 컨텍스트 및 성능 관리
Claude Code가 컨텍스트 윈도우를 관리하고 리소스를 사용하는 방식을 제어합니다.
| 변수명 | 역할 | 기본값 |
|---|---|---|
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE |
자동 압축 트리거 백분율 | 95% |
CLAUDE_CODE_AUTO_COMPACT_WINDOW |
압축 계산에 사용되는 토큰 윈도우 크기 | 모델 컨텍스트 윈도우 |
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS |
파일 읽기 최대 토큰 | 기본값 적용 |
CLAUDE_CODE_API_KEY_HELPER_TTL_MS |
자격 증명 갱신 간격 (밀리초) | — |
CLAUDE_CODE_TMPDIR |
임시 파일 디렉토리 | /tmp (Unix 기준) |
CLAUDE_CODE_SHELL |
사용할 Shell 지정 | 자동 감지 |
🎯 성능 최적화 팁: 긴 대화 중에 Claude Code가 컨텍스트를 너무 자주 압축한다고 느껴진다면,
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE를 더 낮은 값(예:50)으로 설정해 보세요. 압축이 더 일찍 트리거되어 정보 손실을 줄일 수 있습니다. APIYI(apiyi.com)를 통해 호출할 때도 이러한 환경 변수 설정이 모두 지원됩니다.

Claude Code 환경 변수 설정 가이드
초간단 예시: Claude Code를 제3자 API 플랫폼에 연결하기
# 터미널에서 환경 변수를 설정한 후 Claude Code를 실행하세요.
export ANTHROPIC_API_KEY="sk-your-api-key"
export ANTHROPIC_BASE_URL="https://vip.apiyi.com/v1"
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude
전체 settings.json 설정 템플릿 보기 (AWS Bedrock 호환 설정 포함)
{
"env": {
"ANTHROPIC_API_KEY": "sk-your-api-key",
"ANTHROPIC_BASE_URL": "https://vip.apiyi.com/v1",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
"DISABLE_TELEMETRY": "1"
},
"permissions": {
"allow": ["Read", "Glob", "Grep"],
"deny": []
}
}
AWS Bedrock 전용 설정:
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"DISABLE_PROMPT_CACHING": "1",
"ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION": "us-east-1"
}
}
Microsoft Foundry 전용 설정:
{
"env": {
"CLAUDE_CODE_USE_FOUNDRY": "1",
"ANTHROPIC_FOUNDRY_BASE_URL": "https://my-resource.services.ai.azure.com/anthropic",
"ANTHROPIC_FOUNDRY_API_KEY": "your-foundry-key",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
팁: AWS Bedrock이나 Azure의 복잡한 설정이 번거롭다면, **APIYI(apiyi.com)**를 통해 Claude 전체 모델을 바로 사용해 보세요. API 키와 Base URL 두 가지만 설정하면 되므로 클라우드 플랫폼 인증이나 호환성 문제를 신경 쓸 필요가 없습니다.
자주 묻는 질문 (FAQ)
Q1: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1을 설정했는데도 anthropic-beta 헤더 오류가 발생하면 어떻게 하나요?
이것은 Claude Code의 알려진 버그입니다(GitHub Issue #22893, #20031). 일부 최신 버전에서 새로운 베타 헤더가 도입되면서 환경 변수가 이를 완벽하게 차단하지 못하는 경우가 있습니다. 해결 방법은 다음과 같습니다:
- 2.1.68 등 이미 검증된 안정적인 버전으로 다운그레이드합니다.
DISABLE_PROMPT_CACHING=1을 함께 설정하여 캐싱 관련 헤더를 비활성화합니다.- LiteLLM 게이트웨이를 사용 중이라면
anthropic_beta_headers_config.json을 구성하여 세부 필터링을 수행합니다. - Bedrock 직결 시 발생하는 헤더 문제를 피하기 위해 호환성이 더 좋은 **APIYI(apiyi.com)**와 같은 제3자 플랫폼을 사용합니다.
Q2: ANTHROPIC_API_KEY 환경 변수와 /login 로그인의 우선순위는 어떻게 되나요?
환경 변수에 설정된 API 키가 /login을 통한 구독 인증보다 우선순위가 높습니다. ANTHROPIC_API_KEY 환경 변수를 설정하면, Claude Pro/Team 구독으로 로그인되어 있더라도 Claude Code는 환경 변수의 키를 사용하여 API 사용량에 따라 비용을 청구합니다. 만약 APIYI(apiyi.com)에서 발급받은 키를 사용한다면, 비용은 해당 플랫폼을 통해 결제됩니다.
Q3: 현재 Claude Code에 적용된 환경 변수 설정을 어떻게 확인하나요?
Claude Code 대화 모드에서 /config 명령어를 실행하면 환경 변수, settings.json 설정 및 기본값을 포함한 모든 설정 항목의 현재 상태를 확인할 수 있습니다. 또는 터미널에서 env | grep -E "CLAUDE|ANTHROPIC|DISABLE" 명령어를 실행하여 설정된 관련 환경 변수를 직접 확인할 수도 있습니다.
요약
Claude Code 환경 변수의 핵심 요점은 다음과 같습니다.
- AWS Bedrock 오류 해결:
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1을 설정하여 실험적 Beta 헤더를 비활성화하세요. 이 설정 한 줄로 「Unexpected value(s) for the anthropic-beta header」 오류를 해결할 수 있습니다. - 60개 이상의 환경 변수를 6대 카테고리로 분류: 인증 설정, 모델 선택, 플랫폼 호환성, 기능 스위치, 컨텍스트 관리, 기타 설정으로 나뉩니다.
- 두 가지 설정 방식: Shell export(임시)와 settings.json(영구) 방식이 있으며, 설정을 유지하려면 settings.json에 작성하는 것을 추천합니다.
- API 중계 서비스를 통한 간소화: APIYI(apiyi.com)와 같은 통합 API 플랫폼을 이용하면
ANTHROPIC_API_KEY와ANTHROPIC_BASE_URL두 가지 변수만 설정하면 됩니다. 복잡한 클라우드 플랫폼 인증이나 Beta 헤더 호환성 문제를 신경 쓸 필요가 없습니다.
AWS Bedrock이나 Vertex AI 설정 시 발생하는 각종 호환성 문제를 피하고 싶다면, APIYI(apiyi.com)를 통해 Claude Code를 빠르게 연결해 보시는 것을 추천합니다. 플랫폼에서 제공하는 무료 크레딧과 통합 인터페이스를 활용해 보세요.
📚 참고 자료
-
Claude Code 공식 문서 – 환경 변수: 전체 환경 변수 목록 및 설명
- 링크:
code.claude.com/docs/en/env-vars - 설명: 60개 이상의 모든 환경 변수에 대한 공식 레퍼런스입니다.
- 링크:
-
Claude Code 공식 문서 – 설정: 설정 범위 및 settings.json 규격
- 링크:
code.claude.com/docs/en/settings - 설명: Managed/User/Project/Local 4단계 설정 체계를 이해할 수 있습니다.
- 링크:
-
Claude Code 공식 문서 – Amazon Bedrock: AWS Bedrock 통합 가이드
- 링크:
code.claude.com/docs/en/amazon-bedrock - 설명: Bedrock 전용 설정 및 일반적인 문제 해결 방법을 다룹니다.
- 링크:
-
GitHub Issue #22893 – DISABLE_EXPERIMENTAL_BETAS 미적용 문제: 커뮤니티 버그 보고
- 링크:
github.com/anthropics/claude-code/issues/22893 - 설명: 해당 환경 변수의 알려진 제한 사항과 임시 해결 방법을 확인할 수 있습니다.
- 링크:
-
LiteLLM – Claude Code Beta Headers 관리: 게이트웨이 계층의 Beta 헤더 필터링 방안
- 링크:
docs.litellm.ai/docs/tutorials/claude_code_beta_headers - 설명: LiteLLM 게이트웨이 사용 시 세밀한 Beta 헤더 제어 방법을 설명합니다.
- 링크:
작성자: APIYI 기술 팀
기술 교류: 댓글 창에서 Claude Code 설정 경험을 함께 공유해 주세요. 더 많은 사용 튜토리얼은 APIYI docs.apiyi.com 문서 센터에서 확인하실 수 있습니다.
