CLAUDE_CONFIG_DIR: Claude Code에서 하는 일
CLAUDE_CONFIG_DIR은 Claude Code가 기본값인 ~/.claude 대신 다른 설정 디렉터리를 쓰도록 지정합니다. 설정, 세션 기록, 플러그인, 로그인이 모두 이 경로를 따르므로 디렉터리마다 독립된 Claude Code 환경이 됩니다. Anthropic은 업무용과 개인용 계정에 동시에 로그인해 두는 용도로 이 방법을 제안합니다.
다른 언어: English · Español · Deutsch · Français · 日本語 · 简体中文 · Português (Brasil) · Italiano · Nederlands · 繁體中文
독립적인 Claude Desktop 프로필 관리 앱 Switch가 작성한 가이드입니다. Switch는 정식 출시를 앞두고 얼리 액세스 중입니다.
이 변수가 하는 일
Anthropic의 환경 변수 레퍼런스는 CLAUDE_CONFIG_DIR을 설정 디렉터리(기본값 ~/.claude)를 바꾸는 변수로 설명합니다. 모든 설정, 세션 기록, 플러그인이 지정한 경로 아래에 저장됩니다.
Claude Code의 다른 부분은 바뀌지 않습니다. claude 명령은 같은 프로그램이고, 단지 다른 폴더를 읽고 쓸 뿐입니다. 한 값으로 실행하면 하나의 환경이, 다른 값으로 실행하면 서로 독립된 두 번째 환경이 만들어집니다.
설정 디렉터리에 들어 있는 것
Anthropic의 .claude 디렉터리 가이드에 따르면, CLAUDE_CONFIG_DIR을 설정하면 원래 ~/.claude 아래에 있을 모든 경로가 지정한 디렉터리 아래에 놓입니다. 여기에는 다음이 포함됩니다.
- 개인
CLAUDE.md,settings.json, 스킬, 명령, 서브에이전트, 출력 스타일. projects/에 있는 세션 기록과 프로젝트별 자동 메모리.- 체크포인트 복원에 쓰이는 파일 스냅샷, 플랜 파일, 프롬프트 기록.
- 키 바인딩과 사용자 지정 테마.
프로젝트 파일은 영향을 받지 않습니다. 저장소 자체의 CLAUDE.md, .claude/ 폴더, .mcp.json은 프로젝트에 속하므로 모든 설정 디렉터리에서 보입니다.
Mac에서 로그인이 분리되는 방식
macOS에서 Claude Code는 인증 정보를 암호화된 키체인(Keychain)에 저장합니다. Anthropic의 인증 정보 관리 안내에 따르면 CLAUDE_CONFIG_DIR이 설정되어 있을 때 Claude Code는 키체인 항목을 그 디렉터리에 연결합니다. 그래서 디렉터리가 다른 세션은 다른 항목을 읽습니다. 키체인 쓰기가 거부되면 대체 파일인 .credentials.json도 그 디렉터리에 저장됩니다.
문서에 나와 있는 예외가 하나 있습니다. API 키 없이 로그인한 Claude Console 계정 두 개는 디렉터리를 나눠도 분리되지 않습니다. Claude Code가 이런 방식의 로그인을 설정 디렉터리 밖에 저장하기 때문입니다(인증 문서, 2026년 10월 기준).
환경 변수도 모든 디렉터리에서 로그인을 덮어쓸 수 있습니다. 셸에서 ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, CLAUDE_CODE_OAUTH_TOKEN 중 하나가 export되어 있으면 로그인한 계정보다 우선할 수 있습니다. 전체 우선순위는 Claude Code 계정 변경 방법을 참고하세요.
어디에 설정할까
가장 간단한 방법은 셸 별칭이며, Anthropic이 드는 예시도 이것입니다. ~/.zshrc에 추가하고 새 터미널 윈도우를 엽니다.
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'처음 실행하면 새 디렉터리의 로그인과 초기 설정을 안내합니다. 그냥 claude를 실행하면 계속 ~/.claude를 사용합니다.
사용자 설정이나 관리형 설정에서 변수를 지정할 수도 있습니다. 설정 파일에는 절대 경로를 적어야 합니다. Claude Code는 프로젝트 설정과 로컬 설정에서는 이 값을 무시하므로, 그런 방법으로 저장소별로 지정할 수는 없습니다.
셸이 어떤 디렉터리를 쓰는지 확인하려면 claude auth status를 실행합니다. 최근 버전에서는 JSON 출력에 configDirectory 필드가 포함됩니다(CLI 레퍼런스).
흔한 실수
- 한 윈도우에서 변수를 빠뜨리는 경우. 변수가 없는 터미널 탭은
~/.claude와 그 로그인을 사용하는데, 알아차리기 쉽지 않습니다. 별칭을 쓰면 이런 일을 피할 수 있습니다. - 설정 파일에
~를 쓰는 경우. 설정 파일에는/Users/you/.claude-work처럼 절대 경로가 필요합니다. - 폴더 전체를 복사해 새 폴더를 만드는 경우. 한 계정의 기록과 상태가 다른 계정으로 복사됩니다. 빈 폴더에서 시작해 필요한 것만 추가하세요. 스킬과 MCP 서버 공유하기에서 다룹니다.
- 예전 세션이 따라올 거라고 기대하는 경우. 세션 기록은 그것을 만든 디렉터리에 있으므로, 다른 디렉터리에서
claude --resume을 실행하면 목록에 나오지 않습니다. Claude Code 세션 이어가기를 참고하세요. - API 키가 export되어 있는 경우. 모든 디렉터리에서 로그인을 덮어씁니다.
Switch가 Claude Desktop에서 이 변수를 쓰는 방식
Claude Desktop 안의 Claude Code는 셸 별칭을 읽지 않습니다. 이 경우는 Switch가 처리합니다. Switch 프로필마다 별도의 데이터 폴더로 Anthropic의 Claude Desktop 앱을 엽니다. 새 프로필의 기본값인 Keep coding preferences separate(코딩 환경설정 분리)가 켜져 있으면 프로필마다 별도의 Claude Code 설정 폴더도 생기고, Switch는 CLAUDE_CONFIG_DIR을 그 폴더로 지정한 채 해당 프로필의 Claude Desktop을 실행합니다.
Switch는 터미널 명령을 추가하지 않으며, 각 계정은 자체 요금제와 사용량 제한을 유지합니다. Switch가 Claude Code를 다루는 방식.