Claude Code, VS Code랑 터미널에서 계정 나눠 쓰기
2026-08-28
Troubleshooting
![]()
필자는 Claude Code를 두 군데서 쓴다. VS Code 확장에서 한 번, 터미널 CLI에서 한 번. 그리고 계정도 두 개다. 하나는 개인 Pro, 하나는 학교에서 받은 Team 좌석.
당연히 VS Code는 학교 계정, 터미널은 개인 계정으로 나눠 쓰고 있다고 생각했다. 그런데 사용량을 확인해보니 양쪽이 완전히 똑같이 나왔다.
Session (5hr) 34% Resets in 4h
Weekly (7 day) 4% Resets in 3d
계정이 다르면 한도도 따로 차야 하는데 왜 같을까? 계정 정보가 남아있어서 생기는 일시적인 오류인가 싶었다. 파보니 아니었다.
원인 1 — 로그인 정보는 한 군데에만 있다
Claude Code의 로그인 정보가 어디 저장되는지부터 확인했다. macOS 키체인이다.
security find-generic-password -s "Claude Code-credentials"
"acct"<blob>="jin"
"svce"<blob>="Claude Code-credentials"
항목이 딱 하나다. 그리고 계정 정보가 담긴 ~/.claude.json을 열어보면 역시
oauthAccount가 하나뿐이다.
python3 -c 'import json,os;d=json.load(open(os.path.expanduser("~/.claude.json")));print(d["oauthAccount"]["emailAddress"])'
혹시 VS Code 확장이 자기만의 저장소를 따로 갖고 있나 싶어 확장이 VS Code에 저장해둔 값도 꺼내봤다.
sqlite3 ~/Library/Application\ Support/Code/User/globalStorage/state.vscdb \
"select value from ItemTable where key='Anthropic.claude-code';"
{"settingsMigrated20251024":true,"experimentGates":{...},
"hiddenSessionIds":[...],"defaultPermissionMode":"auto"}
전부 UI 설정이고 계정 정보가 없다. 즉 VS Code 확장과 CLI는 같은 키체인
항목, 같은 ~/.claude.json을 공유하고 있었다. 같은 곳을 보니 계정이 갈릴 수가
없다.
여기서 필자는 “그럼 구조적으로 두 계정을 동시에 쓸 수 없구나”라고 결론지었다. 틀린 결론이었다. 왜 틀렸는지는 뒤에서 다룬다.
그럼 VS Code에 학교 계정 이메일이 떠 있던 건 뭐였나. 그냥 옛날 값이었다. 그 창을 켤 당시 로그인돼 있던 계정 정보를 읽어와서 계속 보여주고 있었던 거다. 그 사이에 개인 계정으로 다시 로그인한 걸 창이 모르고 있었다.
원인 2 — 사용량 분석은 계정과 무관하다
사용량 패널 아래쪽에 이런 분석이 나온다.
98% of your usage was at >150k context
84% of your usage came from sessions active for 8+ hours
이 부분은 계정 기준이 아니다. 패널에도 작게 적혀 있다.
Approximate, based on local sessions on this machine — does not include other devices or claude.ai
이 기기의 세션 로그 파일에서 계산하는 값이다. 그러니 어느 계정으로 보든 항상 같게 나온다. 위쪽 퍼센트는 실제 토큰 기준이라 같은 계정이어서 같았고, 아래쪽 분석은 애초에 계정과 상관이 없어서 같았다. 두 겹으로 똑같았던 것이다.
계정 확인은 claude auth status로
여기서 알게 된 유용한 명령어가 하나 있다. /status 슬래시 명령 말고,
셸에서 바로 쓸 수 있는 비대화형 명령이 있다.
claude auth status
{
"loggedIn": true,
"authMethod": "claude.ai",
"email": "personal@example.com",
"orgName": "personal@example.com's Organization",
"subscriptionType": "pro"
}
claude auth에는 login / logout / status가 있다. JSON으로 딱 떨어져
나오니 어느 창이 어느 계정인지 확인할 때 훨씬 편하다.
해결 — CLAUDE_CONFIG_DIR
Claude Code에는 설정 디렉터리를 바꾸는 환경변수 CLAUDE_CONFIG_DIR이 있다.
이게 인증까지 갈라주는지가 핵심이었다. 빈 디렉터리를 만들어 시험해봤다.
mkdir /tmp/testconf
CLAUDE_CONFIG_DIR=/tmp/testconf claude auth status
{
"loggedIn": false,
"authMethod": "none",
"apiProvider": "firstParty"
}
된다. 같은 기기, 같은 키체인인데도 설정 디렉터리를 바꾸니 로그인 상태가 따로 논다. 이걸로 계정을 나눌 수 있다.
왜 되는가 — 키체인 항목 이름이 갈린다
앞에서 “키체인 항목이 하나뿐”이라고 했는데, 두 번째 계정으로 로그인한 뒤 다시 세어보니 두 개가 되어 있었다.
security dump-keychain | grep "Claude Code-credentials"
"svce"<blob>="Claude Code-credentials"
"svce"<blob>="Claude Code-credentials-ad195971"
접미사 ad195971이 뭔지 궁금해서 직접 계산해봤다. 자기 경로를 넣어보면 자기
접미사가 나온다.
python3 -c 'import hashlib,os,sys; print(hashlib.sha256(sys.argv[1].encode()).hexdigest()[:8])' \
"$HOME/.claude-hgu"
필자의 경우 ad195971이 그대로 나왔다.
설정 디렉터리 경로의 SHA-256 앞 8자리다. Claude Code는 CLAUDE_CONFIG_DIR
마다 키체인 항목 이름을 따로 만든다. 그래서 두 계정이 서로를 덮어쓰지 않는다.
처음에 “항목이 하나뿐”이었던 건 기본 디렉터리만 쓰고 있었기 때문이다. 하나뿐인 걸 보고 구조적 한계라고 판단한 게 실수였다.
실제 설정
필자는 이렇게 배치했다.
- CLI →
~/.claude(기본값 그대로) → 개인 Pro - VS Code →
~/.claude-hgu(새로 만듦) → 학교 Team
CLI를 기본값에 두는 게 중요하다. 그러면 기존 로그인·기록·설정을 하나도 건드리지 않는다.
1. 새 설정 디렉터리 만들기
인증만 새로 잡고 나머지는 심볼릭 링크로 공유한다.
NEW=~/.claude-hgu
mkdir -p "$NEW"
for f in CLAUDE.md settings.json settings.local.json projects plugins; do
ln -s ~/.claude/"$f" "$NEW/$f"
done
projects를 링크하는 게 특히 중요하다. 프로젝트 메모리가
projects/<프로젝트>/memory/ 안에 살기 때문에, 링크를 안 하면 새 계정
쪽에서는 기억이 통째로 사라진다. 세션 파일은 UUID별로 갈라져 있어서 두
계정이 같이 써도 충돌하지 않는다.
반대로 이런 건 링크하면 안 된다.
history.jsonl 단일 append 파일 → 동시에 쓰면 경합
daemon* 프로세스 상태 파일
session-env 세션별 환경
2. VS Code 확장만 새 디렉터리를 보게 하기
확장에 claudeCode.environmentVariables라는 설정이 있다. VS Code 사용자
설정(Cmd+Shift+P → Preferences: Open User Settings (JSON))에 추가한다.
"claudeCode.environmentVariables": [
{ "name": "CLAUDE_CONFIG_DIR", "value": "/Users/사용자명/.claude-hgu" }
]
경로에 ~는 쓰지 말고 절대경로로 적는다. 값이 그대로 환경변수로 넘어가기
때문에 셸이 풀어주지 않는다.
3. 새 디렉터리로 로그인
CLAUDE_CONFIG_DIR=~/.claude-hgu claude auth login --email school@example.com
브라우저가 뜨면 학교 계정으로 로그인한다. 끝나면 VS Code 창을 새로고침한다
(Cmd+Shift+P → Developer: Reload Window).
4. 확인
claude auth status # → 개인 계정
CLAUDE_CONFIG_DIR=~/.claude-hgu claude auth status # → 학교 계정
헷갈리기 쉬운 지점
claudeCode.environmentVariables는 확장이 띄우는 Claude에 적용된다. 그런데
VS Code 통합 터미널도 이 영향을 받는다. 확장이 띄운 셸이 확장의 환경을
그대로 물려받기 때문이다.
필자는 처음에 “통합 터미널은 확장 설정과 무관하니 거기서 claude를 치면 개인
계정이 뜬다”고 생각했는데, 실제로 확인해보니 아니었다.
echo $CLAUDE_CONFIG_DIR
# /Users/사용자명/.claude-hgu
즉 VS Code 안에서는 확장이든 통합 터미널이든 학교 계정이다. 개인 계정을 쓰려면 확장 밖의 터미널(Terminal.app, iTerm 등)을 열거나, 변수를 명시적으로 빼주면 된다.
env -u CLAUDE_CONFIG_DIR claude auth status
반대로 확장 밖 터미널에서 학교 계정을 쓰고 싶으면 ~/.zshrc에 alias를 걸면 된다.
alias claude-school='CLAUDE_CONFIG_DIR=~/.claude-hgu claude'
되돌리기
claudeCode.environmentVariables 항목만 지우고 창을 새로고침하면 VS Code가
다시 기본 디렉터리로 돌아간다. 새로 만든 디렉터리는 남겨둬도 무해하다.
정리
- VS Code 확장은 별도 자격증명 저장소가 없고 CLI와 같은 곳을 본다
- 그래서 기본 상태로는 두 계정을 동시에 쓸 수 없다
CLAUDE_CONFIG_DIR을 다르게 주면 인증까지 갈라진다- 키체인 항목 이름에 설정 디렉터리 경로의 SHA-256 앞 8자리가 붙어서 서로 덮어쓰지 않는다
- VS Code 통합 터미널도 확장의 환경을 물려받는다 — 확장과 같은 계정이 된다
- 단, 설정 디렉터리 전체가 갈라지므로
CLAUDE.md·settings.json·projects는 심볼릭 링크로 공유해주는 편이 좋다 - 계정 확인은
claude auth status가 제일 빠르다
계정 정보가 남아서 생긴 오류인 줄 알았는데, 기본 상태로는 애초에 나눠 쓸 수 없었고 표시만 옛날 값이었다는 결론. 그리고 눈에 보이는 게 하나뿐이라고 해서 구조적 한계는 아니었다 — 이름이 갈려 있을 뿐이었다.
사용량이 이상하게 똑같이 나온다면 claude auth status를 먼저 찍어보자.