윤누리
윤누리
Admin
🧙 AI 위자드
🎻 루키 파트너
🌈 지피터스금손
🚀 SNS 챌린지 달성자

OpenCode에서 Claude 리밋 확인하려고 Claude Code를 따로 켜던 시절은 끝

📝 한줄 요약

OpenCode에서 Claude 사용량과 계정 정보를 바로 확인하는 스킬을 만들었습니다. 설치 30초, 토큰 자동 갱신까지.

🎯 이런 분들께 도움돼요

  • OpenCode 쓰면서 리밋 확인할 방법이 없어서 답답했던 분

  • Claude 계정이 여러 개라 지금 어떤 계정으로 쓰는지 헷갈리는 분

  • 리밋 확인하려고 Claude Code를 따로 띄워놓고 있는 분

결과부터 보고 가시죠!

여러 개의 버튼이 있는 검은색 화면

😫 문제 상황 (Before)

OpenCode에는 현재 Claude 사용량을 확인할 방법이 없습니다.

Claude Code에는 /usage 하면 리밋이 표시되는데, OpenCode에는 그런 게 없어요. 그래서 저는 리밋 확인 전용으로 Claude Code 터미널을 따로 하나 띄워놓고 거기서만 사용량을 봤습니다. 말 그대로 리밋 확인하는 용도로만요.

그리고 또 하나 불편했던 게 — 계정이 여러 개면 지금 어떤 계정으로 쓰고 있는지 헷갈립니다. 저희 회사에는 전략적으로 여러 계정을 돌려쓰는데요, 확인하려면 로그아웃하고 로그인 하고... 정말 번거롭습니다.

🛠️ 사용한 도구

  • OpenCode + Claude Code (Claude Opus)

  • Anthropic OAuth API (사용량 조회, 토큰 갱신)


🔧 만든 과정

스킬 하나 만들면 되겠다

OpenCode는 / 명령어로 스킬을 실행할 수 있어서, 사용량 조회 스킬을 만들기로 했습니다.

Anthropic OAuth API에 /api/oauth/usage/api/oauth/profile 엔드포인트가 있어서, 여기에 토큰 던지면 사용량이랑 계정 정보를 가져올 수 있습니다.

bash 스크립트 하나로 만들었고, 결과는 이렇게 나옵니다:

+- Account ------------------------------+
| [email protected] / Max 20x           |
+- Claude Usage -------------------------+
| 5H Limit:  67%  (reset: 1h 4m)         |
| 7D Limit:  60%  (reset: 4d 20h)        |
+----------------------------------------+

계정 이메일, 플랜(Pro/Max/Team), 5시간/7일 사용량, 리셋까지 남은 시간이 한눈에 보입니다.

토큰이 만료되면?

만들고 잘 쓰다가, 오늘 아침에 갑자기 "API 호출 실패"가 떴습니다.

디버깅해보니 OAuth access token이 만료된 거였어요. 8시간마다 만료됩니다. 그동안은 운 좋게 만료 전에 확인했던 거고요.

매번 claude login 다시 치는 건 말이 안 되니까, 자동 갱신 로직을 추가했습니다.

Claude Code 소스에서 client_id 찾기

토큰을 갱신하려면 OAuth refresh 요청을 보내야 하는데, client_id가 필요합니다. 공식 문서에는 없어서 Claude Code 소스 코드를 직접 뒤졌습니다.

Claude Code 설치 경로에서 CLIENT_ID 문자열을 검색

두 개가 나왔는데, 하나씩 시도해서 맞는 걸 찾았습니다. 이걸로 refresh token을 보내면 새 access token이 발급됩니다.

3단계 fallback 구조

최종적으로 토큰 조회 로직을 이렇게 만들었습니다:

  1. auth.json 유효 → 그대로 사용

  2. auth.json 만료 → refresh token으로 자동 갱신 (파일도 업데이트)

  3. refresh도 실패 → macOS Keychain에서 Claude Code 토큰 가져오기

이렇게 하니까 토큰 만료 걱정 없이 계속 쓸 수 있게 됐습니다.


✅ 결과 (After)

Before vs After

항목

Before

After

리밋 확인

Claude Code 별도 터미널 띄워서 확인

/usage-claudecode 한 번

계정 확인

어딘가 뒤져봐야 함

이메일 + 플랜 바로 표시

토큰 만료

수동 claude login

자동 갱신

결과물

OpenCode에서 /usage-claudecode 입력하면 바로 확인:

+- Account ------------------------------+
| [email protected] / Max 20x                |
+- Claude Usage -------------------------+
| 5H Limit:  2%  (reset: 4h 42m)         |
| 7D Limit:  10%  (reset: 6d 0h)         |
+----------------------------------------+

💬 이 과정에서 배운 것

효과적이었던 것

  1. Claude Code 소스를 직접 뒤진 것 — 공식 문서에 없는 client_id를 찾아서 토큰 자동 갱신까지 구현할 수 있었음

  2. fallback 구조를 넣은 것 — auth.json → refresh → Keychain 순서로 시도하니까 어떤 상황에서든 동작

주의할 점

  1. OAuth refresh token은 한 번 쓰면 폐기(rotation)됩니다. 디버깅할 때 수동으로 refresh 한 번 날렸더니 기존 토큰이 무효화돼서 다시 로그인해야 했음

  2. claude login은 Keychain만 갱신하고 auth.json은 안 건드림 — 이걸 몰라서 한참 헤맸음

📋 설치 방법

터미널에서 이거 복붙하면 설치 끝:

mkdir -p ~/.config/opencode/skills/usage-claudecode/scripts
curl -fsSL https://raw.githubusercontent.com/wineny/opencode-usage/master/scripts/usage.sh -o ~/.config/opencode/skills/usage-claudecode/scripts/usage.sh
curl -fsSL https://raw.githubusercontent.com/wineny/opencode-usage/master/SKILL.md -o ~/.config/opencode/skills/usage-claudecode/SKILL.md
chmod +x ~/.config/opencode/skills/usage-claudecode/scripts/usage.sh

설치 후 OpenCode에서 /usage-claudecode 입력하면 됩니다.

이미 설치한 분은 스크립트만 업데이트:

curl -fsSL https://raw.githubusercontent.com/wineny/opencode-usage/master/scripts/usage.sh -o ~/.config/opencode/skills/usage-claudecode/scripts/usage.sh

🔗 GitHub

https://github.com/wineny/opencode-usage

4개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요