-
터미널 Claude Code 계정 두 개 분리해서 쓰기카테고리 없음 2026. 5. 9. 00:35반응형
맥 한 대에서 Claude Code를 쓰다 보면 이런 상황을 만날 수 있다.
터미널 A에서 Claude Code에 로그인했는데, 터미널 B에서도 자동으로 같은 계정으로 로그인되어 있는 상황이다.
처음에는 “터미널을 두 개 띄웠는데 왜 계정이 공유되지?”라고 생각할 수 있지만, 핵심은 터미널이 아니다. Claude Code가 바라보는 설정 저장소가 같기 때문이다.
Claude Code는 기본적으로 설정, 세션, 인증 토큰 등을
~/.claude/아래에 저장한다. 그래서 어느 터미널에서 실행하든 같은 디렉토리를 바라보면 같은 계정 상태를 공유하게 된다.즉 문제의 본질은 이것이다.
터미널 A -> ~/.claude/ 터미널 B -> ~/.claude/둘 다 같은 저장소를 보고 있으니 같은 계정으로 동작하는 것이 자연스럽다.
공식 문서 기준 근거
이 방법의 핵심은 Anthropic 공식 문서의 Claude Code Environment variables에 나오는
CLAUDE_CONFIG_DIR이다.공식 문서 기준으로
CLAUDE_CONFIG_DIR는 기본 설정 디렉토리인~/.claude를 다른 경로로 바꾸는 환경변수다. 그리고 그 경로 아래에 settings, credentials, session history, plugins가 저장된다고 설명한다. 문서에는 여러 계정을 나란히 실행할 때 쓰는 alias 예시도 함께 나온다.따라서 계정별로
CLAUDE_CONFIG_DIR를 다르게 주입하면, Claude Code가 바라보는 설정 저장소 자체가 달라진다.해결 아이디어
계정별로 저장소를 분리하면 된다.
~/.claude-pro/ ~/.claude-max/각 디렉토리는 서로 다른 Claude Code 저장소가 된다. 인증 토큰, 설정, 프로젝트 히스토리, 플러그인 캐시 등이 서로 분리된다.
1. 계정별 저장소 만들기
먼저 디렉토리를 만든다.
mkdir -p ~/.claude-pro ~/.claude-max처음에는 빈 디렉토리여도 된다. Claude Code를 실행하면 필요한 파일은 자동으로 생성된다.
예를 들어 다음과 같은 파일들이 각 디렉토리 안에 따로 생긴다.
.credentials.json settings.json projects/단, 파일 이름과 내부 구조는 Claude Code 버전에 따라 달라질 수 있다. 중요한 것은 파일명 자체가 아니라
CLAUDE_CONFIG_DIR아래에 설정, 인증, 세션 관련 데이터가 분리 저장된다는 점이다.2. zsh alias 추가하기
~/.zshrc에 alias를 추가한다.alias claude-pro='CLAUDE_CONFIG_DIR=$HOME/.claude-pro claude' alias claude-max='CLAUDE_CONFIG_DIR=$HOME/.claude-max claude'부분 역할 alias claude-pro='...'claude-pro라는 명령어를 새로 정의한다.CLAUDE_CONFIG_DIR=$HOME/.claude-pro그 명령을 실행하는 동안에만 환경변수를 주입한다. claude실제 Claude Code CLI 본체를 실행한다. 이제
claude-pro를 실행하면 Claude Code는~/.claude-pro를 저장소로 사용한다.claude-max를 실행하면~/.claude-max를 저장소로 사용한다.기존
claude명령은 그대로~/.claude/를 사용한다.3. zsh 설정 다시 불러오기
~/.zshrc를 수정한 뒤에는 새 터미널을 열거나, 현재 터미널에서 다음 명령을 실행한다.source ~/.zshrc그 다음 각각 로그인하면 된다. 현재 공식 CLI reference 기준으로는
auth login명령이 명시되어 있다.claude-pro auth login claude-max auth login기존에 대화형 모드 안에서 로그인 명령을 실행하던 흐름이라면, 핵심은 어느 방식이든
CLAUDE_CONFIG_DIR가 주입된 상태에서 로그인해야 한다는 점이다.alias가 동작하는 원리
예를 들어 다음 명령을 입력했다고 하자.
claude-pro --dangerously-skip-permissionszsh는
claude-pro를 alias로 치환한다.실제로는 다음 명령이 실행된다.
CLAUDE_CONFIG_DIR=$HOME/.claude-pro claude --dangerously-skip-permissions여기서 중요한 부분은 이 문법이다.
VAR=value command이 형태는 해당 명령을 실행하는 동안에만 환경변수를 주입한다는 뜻이다. 셸 전체에 영구적으로 적용되는 것이 아니다.
즉
claude-pro를 실행한 프로세스만CLAUDE_CONFIG_DIR=$HOME/.claude-pro를 가진다.옆 터미널이나 다른 명령에는 영향을 주지 않는다.
옵션도 그대로 사용할 수 있다
alias 뒤에 옵션을 붙여도 정상적으로 동작한다.
claude-pro --continue claude-pro --model sonnet claude-pro -p "이 코드 리뷰해줘" claude-pro --dangerously-skip-permissionsClaude Code CLI reference에는
--continue,--model,-p,--dangerously-skip-permissions같은 실행 옵션이 정리되어 있다.alias는 앞부분만 치환되고, 뒤에 붙인 인자는 그대로
claude명령에 전달된다.MCP 설정도 분리된다
공식 Claude Code MCP 문서에 따르면 MCP 서버는 local, project, user scope로 설정할 수 있다. 특히 user scope와 local scope 설정은 사용자 홈의 Claude 설정 파일 쪽에 저장된다.
따라서
CLAUDE_CONFIG_DIR를 계정별로 나누면, 계정별 MCP 설정도 함께 분리해서 관리할 수 있다. 다만 팀 전체가 공유해야 하는 project scope의.mcp.json은 프로젝트 루트에 두는 방식이므로 별도로 관리해야 한다.정리
핵심은 터미널을 분리하는 것이 아니라 Claude Code의 저장소를 분리하는 것이다.
claude-pro -> ~/.claude-pro/ claude-max -> ~/.claude-max/ claude -> ~/.claude/Claude Code는
CLAUDE_CONFIG_DIR환경변수로 설정 저장소 위치를 바꿀 수 있다. 따라서 alias를 이용해 실행할 때마다 다른CLAUDE_CONFIG_DIR를 주입하면, 같은 맥에서도 서로 다른 Claude Code 계정을 독립적으로 사용할 수 있다.주의할 점
settings.json이나 일부 MCP 설정은 필요하면 양쪽에 같은 내용을 복사해도 된다..credentials.json과projects/같은 인증 및 세션 관련 데이터는 공유하지 않는 것이 좋다. 섞이면 다시 같은 계정 상태로 묶일 수 있다.--continue같은 세션 복원도 각 저장소 안에서만 동작한다.claude-pro에서 만든 세션은claude-max에서 이어받을 수 없다.ANTHROPIC_API_KEY가 셸에 설정되어 있으면 공식 문서 기준으로 로그인된 Pro, Max 구독보다 API 키가 우선 사용될 수 있다. 계정 분리 테스트 중 결과가 이상하면echo $ANTHROPIC_API_KEY로 확인하거나 필요 시unset ANTHROPIC_API_KEY를 실행한다.
결론적으로, 한 맥에서 Claude Code Pro 계정과 Max 계정을 나눠 쓰고 싶다면
CLAUDE_CONFIG_DIR과 alias 조합이 가장 간단하다.참고 문서
- Claude Code Environment variables:
CLAUDE_CONFIG_DIR,ANTHROPIC_API_KEY등 환경변수 기준. - Claude Code settings: 설정 범위,
~/.claude,settings.json구조. - Claude Code CLI reference:
auth login,--continue,--model,-p,--dangerously-skip-permissions등 CLI 옵션. - Claude Code MCP documentation: MCP 서버 설정 방식과 scope.
반응형