티스토리 뷰
클로드 인증이 실패하다
지난 3월 여느 때처럼 AI 코딩 에이전트를 돌리고 있었습니다. 도구로는 opencode/oh-my-opencode(현재는 oh-my-openagent)를, 오케스트레이터 모델로는 클로드 오퍼스를 쓰고 있었습니다.
그날도 일어나자마자 자기 전에 돌려둔 작업부터 확인했습니다. 작업은 끝나 있었고, 이어서 다음 작업을 시키려는데 갑자기 클로드가 안 됐습니다. 클로드 서버가 워낙 자주 터지니까 좀 쉬었다가 다시 확인했는데, 여전히 그대로였습니다.
처음엔 opencode 버전 문제인 줄 알았는데, 확인해보니 아니었습니다. 뭔가 이상해서 opencode 깃허브 이슈에 들어가 보니, 저와 똑같은 증상을 겪는 이슈가 올라와 있었습니다.
이슈를 올린 사람이 직접 원인을 분석해서 플러그인을 새로 만들어 공유한 것도 보였습니다.

AI가 멈춰 있는 시간이 아까웠던 터라, 우선 그 플러그인부터 설치해봤는데 안 됐습니다. 그래서 문제를 해결하고 싶은 마음에 이슈를 제대로 들여다보기 시작했습니다.
버그가 아니라 정책 문제
그 플러그인을 만든 사람의 말로는, 실제로는 토큰을 교환하는 단계에서 막힌 거였고, opencode가 보내는 User-Agent가 클로드 코드와 달라 429가 난다는 분석이었습니다. 이유는 모르겠지만 제 환경에선 동작하지 않았습니다.

결국 버그가 아니라 클로드 정책 문제였습니다. Anthropic이 서드파티 OAuth 클라이언트를 토큰 단계에서 막은 거였고, opencode도 법적 요청을 받아 클로드 OAuth 지원을 제거했습니다(커밋 "Anthropic legal requests"). 이후 Anthropic은 약관에서도 클로드 구독 인증을 클로드 코드와 claude.ai 밖에서 쓰는 걸 금지했습니다.
헤더를 맞춰 로그인에 성공한 사람도 있었지만, 어차피 정책으로 막아둔 길을 우회하는 방법이었습니다.
npm으로 받은 인증 도구를 믿어도 될까
이때 이슈는 플러그인 춘추전국시대였습니다. 저를 포함하여 하루 이틀만에 '내가 만든 게 된다'는 댓글만 여러 개였습니다. 마침 경고하는 댓글도 하나 올라왔습니다. 급하게 인증 플러그인을 설치하다 보면, 누가 npm 패키지에 악성 코드를 심어도 제대로 확인하지 못하고 깔게 된다는 얘기였습니다.

저 또한 누군가 이제 막 만든 인증 토큰을 다루는 도구를 쓰는 건 조심스러웠습니다. 그래서 npm 플러그인 말고 다른 방법은 없을까 고민하게 됐습니다.
토큰을 옮기는 작은 스크립트
이슈 댓글에서 힌트를 발견했습니다. 클로드 코드가 쓰는 토큰을 꺼내 기존 opencode 클로드 인증 플러그인이 사용하고 있는 auth.json에 넣으면 동작한다는 거였습니다. 생각해보니 막힌 건 토큰 교환 API뿐이라, 이미 받아둔 토큰을 그대로 쓰면 됐습니다.

그리핀마틴도 클로드 코드 토큰을 활용한 플러그인을 만들었는데, 확인해보니 npm 설치 방식이어서 저는 스크립트로 만들어 공유하기로 했습니다.
먼저 나온 그리핀마틴 기존 내장 플러그인 방식을 대체하는 npm 방식이었지만, 저는 스크립트로 만들어 공유하기로 했습니다.
클로드 코드 인증 정보를 읽는다 (macOS Keychain 또는 ~/.claude/.credentials.json)
필드 이름을 opencode 형식에 맞게 바꾼다 (accessToken → access, expiresAt → expires …)
auth.json의 anthropic 항목에 써넣는다{
"anthropic": {
"type": "oauth",
"access": "...",
"refresh": "...",
"expires": 1770000000000
}
}근데 이 방식은 곧 제거될 예정인 opencode 내장 플러그인을 사용하는 거라 한계가 있었습니다. 그래도 대표 플러그인이 자리잡기 전까지 쓸 임시방편으로는 충분하다는 생각이 들었습니다.
마무리
단순히 한 번 복사하면 끝나는 스크립트는 아니었습니다. 토큰이 만료되면 다시 동기화해야 했고, 플랫폼마다 credentials 위치와 스케줄러도 달랐습니다. 노트북은 macOS, 회사 서버는 Linux, 회사 컴퓨터는 Windows라 세 환경을 직접 쓰면서 하나씩 고쳤습니다. 공개한 뒤로는 이슈로 버그를 올려주는 분도 있었고, macOS PATH 문제나 Linux 스케줄러를 직접 고쳐 PR을 보내준 분도 있었습니다.
위 버그를 수정해서 공유했을때 많은 이모지 반응이 있어서 놀랐었습니다.

다른 사람들의 아이디어에서 시작한 작은 스크립트였는데, 생각보다 깃허브 스타가 많이 붙어서 신기했습니다. 누군가 댓글에서 제 프로젝트를 언급해준 게 홍보가 됐던 것 같습니다.
초반에는 현재 자리잡은 플러그인인 그리핀마틴과 비슷하게 가다가, 금세 스타 개수가 벌어졌습니다. 그리고 1.3.0에서 opencode 내장 플러그인이 빠지면서, 제 오픈소스도 막을 내렸습니다. ㅎㅎ
그래도 다른 사람이 제 프로젝트에 버그를 올리고 고쳐주는 걸 처음 겪어봐서 좋았습니다.
- Total
- Today
- Yesterday
- 링크드리스트 클래스
- 후지필름X100V
- 구글 드라이브 API
- SSD
- 후지필름
- ssd추천
- 리스트
- X100v
- ssd성능
- 링크드리스트
- 구글 드라이브
- Google Drive SDK
- ssd비교
- 샌디스크ssd
- 구글 드라이브 개발
- 삼성ssd
- 후지필름 일렉트로닉
- C++
- C
- SDK
- 리스트 클래스
- 리스트 소스 코드
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |

