콘텐츠로 이동

OAuth 및 구독 프로바이더

Codex, Gemini CLI, Claude Code, KiloCLI, Copilot, MiniMax, Qwen의 OAuth/구독 기반 인증 방법을 설명합니다.

대부분의 Revka 프로바이더는 일반 API 키로 인증합니다. 이 페이지에서 소개하는 프로바이더는 다릅니다. 토큰당 과금 방식의 API 키 대신, 이미 이용 중인 구독 — ChatGPT/Codex 플랜, Gemini CLI 로그인, Claude Code 구독, GitHub Copilot 시트, 또는 MiniMax/Qwen OAuth 계정 — 을 재사용합니다. 붙여넣을 sk-... 값이 없습니다. Revka는 OAuth 흐름을 직접 수행하거나, 다른 CLI가 발급한 토큰을 재사용하거나, 인증된 로컬 바이너리를 실행합니다.

에이전트가 토큰당 과금 대신 정액 구독을 통해 비용을 처리하길 원할 때, 또는 이미 설치·인증된 CLI가 있어 Revka가 해당 자격 증명을 활용하길 원할 때 이 프로바이더들을 사용하세요.

OAuth 흐름으로 발급된 인증 프로파일은 config.toml과 별도로 저장되며, ~/.revka/auth-profiles.json에 프로바이더 및 프로파일 이름을 키로 캐시됩니다. revka auth 명령어 전체 레퍼런스는 revka 모델, 프로바이더 & 인증을, 자격 증명의 저장 방식에 대해서는 시크릿, 페어링 & 디바이스 인증을 참조하세요.

이 페이지에서는 세 가지 메커니즘을 사용합니다.

메커니즘프로바이더Revka의 토큰 획득 방법
Revka OAuth 흐름openai-codex, GitHub Copilotrevka auth login (또는 device-code)으로 OAuth 흐름을 실행하고 토큰을 캐시
다른 CLI 자격 증명 재사용gemini-cli, claude-code, kilocli, Qwen CodeRevka가 인증된 바이너리를 실행하거나 디스크의 자격 증명 파일을 읽음
OAuth 토큰 환경 변수MiniMax, Qwen환경 변수로 OAuth/갱신 토큰을 직접 제공하면 Revka가 갱신 처리

서브프로세스 프로바이더(gemini-cli, claude-code, kilocli)는 키를 보유하지 않습니다. 자체 세션을 유지하는 바이너리를 셸에서 실행합니다. 토큰 환경 변수 프로바이더(MiniMax, Qwen)는 OAuth 액세스 토큰 또는 Revka가 인-프로세스로 갱신하는 갱신 토큰을 받습니다.

openai-codex 프로바이더(별칭 codex)는 ChatGPT/Codex 구독의 OAuth 자격 증명을 사용하여 https://chatgpt.com/backend-api/codex/responses의 OpenAI Responses API — Chat Completions와는 다른 엔드포인트 — 와 통신합니다. SSE 스트리밍, 추론 수준(reasoning-effort), 네이티브 도구 호출(사전 실행 도구 호출 패스스루 포함)을 지원합니다.

Terminal window
# 브라우저/리다이렉트 OAuth 흐름
revka auth login --provider openai-codex
# 헤드리스 환경 — device-code 흐름
revka auth login --provider openai-codex --device-code
# Codex CLI가 이미 발급한 자격 증명 재사용
revka auth login --provider openai-codex --import ~/.codex/auth.json

--import의 기본값은 ~/.codex/auth.json이므로, Codex CLI를 이미 사용 중이라면 재인증 없이 해당 로그인을 가져올 수 있습니다. 브라우저 흐름은 URL을 열고 리다이렉트를 캡처한 뒤 토큰을 ~/.revka/auth-profiles.json에 캐시합니다. 리다이렉트를 캡처할 수 없는 환경에서는 수동으로 완료합니다.

Terminal window
revka auth paste-redirect --provider openai-codex --input "<URL_OR_CODE>"

장시간 실행되는 배포에서는 액세스 토큰이 자동으로 갱신됩니다. 강제 갱신이 필요하면 revka auth refresh --provider openai-codex를 사용하세요.

default_provider = "openai-codex"
default_model = "gpt-5.3-codex"
[runtime]
reasoning_effort = "medium" # minimal | low | medium | high | xhigh
설정타입설명
[runtime] reasoning_effortstring추론 깊이: minimal, low, medium, high, xhigh. REVKA_CODEX_REASONING_EFFORT 환경 변수로도 설정 가능.
REVKA_CODEX_RESPONSES_URLenvResponses API 엔드포인트 재정의.
REVKA_CODEX_BASE_URLenv기본 URL 재정의.

gemini-cli 프로바이더는 Google의 Gemini CLI인 gemini 바이너리를 자식 프로세스로 실행하고 stdin으로 프롬프트를 전달합니다. CLI 자체의 자격 증명 저장소를 재사용하므로 Revka API 키가 필요 없습니다gemini 바이너리가 미리 설치되어 로그인되어 있어야 합니다.

default_provider = "gemini-cli"
default_model = "gemini-2.5-pro"
설정타입설명
GEMINI_CLI_PATHenvgemini 바이너리 경로. 기본값: PATH에서 gemini.

전체 대화 기록, API 키, OAuth 토큰 재사용, 또는 Vertex AI를 통해 Gemini API에 직접 접근하려면 gemini 프로바이더를 사용하세요. 클라우드 API 프로바이더 (Gemini, Bedrock, Azure)를 참조하세요.

claude-code 프로바이더는 Claude Code CLI인 claude 바이너리를 자식 프로세스로 실행하고 stdin으로 프롬프트를 전달하며, Claude Code의 자체 인증을 재사용합니다. 별도의 API 키가 필요 없으며 claude 바이너리가 설치되어 인증된 상태여야 합니다.

default_provider = "claude-code"
default_model = "claude-sonnet-4-6"
설정타입설명
CLAUDE_CODE_PATHenvclaude 바이너리 경로. 기본값: PATH에서 claude.

Gemini CLI, KiloCLI와 달리, Claude Code는 전체 대화(시스템 프롬프트 및 이전 모든 턴)를 하나의 레이블 붙은 프롬프트로 평탄화하여 전달합니다 — 즉 멀티턴 기록이 보존됩니다. 온도 값이 0.7/1.0 이외인 경우 가장 가까운 지원 값으로 자동 클램프됩니다(비유한 값만 오류 발생). Gemini CLI와 KiloCLI는 지원하지 않는 온도를 오류로 거부합니다. 요청당 타임아웃은 120초입니다.

kilocli 프로바이더(별칭 kilo)는 KiloCLI인 kilo 바이너리를 실행하며 구조적으로 Claude Code 프로바이더와 동일합니다. KiloCLI가 별도로 설치되어 인증된 상태여야 합니다.

default_provider = "kilocli"
default_model = "default"
설정타입설명
KILO_CLI_PATHenvkilo 바이너리 경로.

다른 서브프로세스 프로바이더와 동일한 제약이 적용됩니다. 멀티턴 기록 없음, 온도 0.7/1.0만 허용, 120초 타임아웃.

copilot 프로바이더(별칭 github-copilot)는 https://api.githubcopilot.com의 GitHub Copilot 인퍼런스에 접근합니다. VS Code의 OAuth 클라이언트 ID(Iv1.b507a08c87ecfe98)를 사용하여 GitHub device-code 흐름을 수행하고, 그 결과를 GitHub OAuth 토큰으로 교환한 뒤 단기 Copilot API 토큰을 발급합니다. 토큰은 캐시되며 자동으로 갱신됩니다.

default_provider = "copilot"
default_model = "gpt-4o"
api_key = "<github-oauth-token>"
설정타입설명
api_keystringGitHub OAuth 토큰 (단기 Copilot 키가 아님). 설정 파일 또는 환경 변수에 저장되는 값.
토큰 캐시경로~/.config/revka/copilot/ (api-key.jsonaccess-token 포함).

device-code 흐름 중 Revka는 브라우저에서 승인할 URL과 사용자 코드를 출력합니다.

MiniMax(글로벌 및 중국)는 자동 OAuth 토큰 처리를 지원합니다. api_key = "minimax-oauth"는 프로바이더를 OAuth 경로로 전환하는 플레이스홀더입니다. MINIMAX_OAUTH_TOKEN을 먼저 확인하고, 다음으로 MINIMAX_API_KEY를 확인하며, 필요한 경우 MINIMAX_OAUTH_REFRESH_TOKEN으로 토큰 갱신 엔드포인트를 호출합니다.

default_provider = "minimax-oauth"
api_key = "minimax-oauth"
Terminal window
export MINIMAX_OAUTH_TOKEN="<token>" # 권장: 직접 OAuth 토큰
# 또는 자동 갱신을 위해:
export MINIMAX_OAUTH_REFRESH_TOKEN="<token>"
export MINIMAX_OAUTH_REGION="global" # global | cn
변수설명
MINIMAX_OAUTH_TOKEN직접 OAuth 액세스 토큰 (우선 확인).
MINIMAX_API_KEY표준 API 키 폴백.
MINIMAX_OAUTH_REFRESH_TOKEN갱신 토큰; Revka가 이를 교환하여 새 액세스 토큰 발급.
MINIMAX_OAUTH_REGIONglobal 또는 cn — 토큰 엔드포인트와 기본 URL 선택.
MINIMAX_OAUTH_CLIENT_ID기본 OAuth 클라이언트 ID 재정의.

리전 라우팅: 글로벌 토큰은 https://api.minimax.io/oauth/token, 중국 토큰은 https://api.minimaxi.com/oauth/token을 사용합니다. 리전은 선택한 별칭(minimax/minimax-intl은 글로벌, minimax-cn/minimaxi는 중국) 또는 MINIMAX_OAUTH_REGION에서 자동으로 결정됩니다.

Alibaba Qwen(DashScope)은 세 가지 하위 변형을 지원합니다. 직접 API 키, Qwen Code CLI의 OAuth 토큰 재사용, 또는 명시적 OAuth 토큰입니다. qwen-code 변형(api_key = "qwen-oauth")은 Qwen Code CLI 로그인 사용자를 위한 구독 경로로, openai-codex와 유사합니다.

# 직접 API 키
default_provider = "qwen"
# 그 다음: export DASHSCOPE_API_KEY=...
# OAuth / Qwen Code 구독
default_provider = "qwen-code"
api_key = "qwen-oauth"
변수설명
DASHSCOPE_API_KEY직접 API 키 (비OAuth 변형용).
QWEN_OAUTH_TOKEN명시적 OAuth 액세스 토큰.
QWEN_OAUTH_REFRESH_TOKEN캐시된 토큰이 만료되었을 때 인-프로세스 자동 갱신 활성화.
QWEN_OAUTH_RESOURCE_URLOAuth 세션에서 가져온 엔드포인트 재정의.
QWEN_OAUTH_CLIENT_ID기본 OAuth 클라이언트 재정의.

명시적 토큰이 설정되지 않은 경우, Revka는 Qwen Code CLI가 ~/.qwen/oauth_creds.json에 기록한 자격 증명을 자동으로 탐색합니다. 리전별 엔드포인트는 다음과 같습니다.

리전기본 URL
중국dashscope.aliyuncs.com/compatible-mode/v1
국제dashscope-intl.aliyuncs.com/compatible-mode/v1
미국dashscope-us.aliyuncs.com/compatible-mode/v1

중국 리전 전체 프로바이더 구성(GLM, Moonshot/Kimi, Doubao, 전체 별칭-리전 맵)은 중국 리전 프로바이더를 참조하세요.

위의 OAuth 기반 프로바이더는 revka auth 명령어 그룹으로 관리합니다. 가장 많이 사용하는 흐름은 다음과 같습니다.

Terminal window
revka auth login --provider openai-codex # OAuth 로그인 시작
revka auth login --provider openai-codex --device-code
revka auth login --provider gemini --profile work # 명명된 프로파일
revka auth status # 활성 프로파일 + 프로바이더별 토큰 만료 확인
revka auth use --provider openai-codex --profile work
revka auth refresh --provider openai-codex # 토큰 강제 갱신
revka auth logout --provider openai-codex
명령어설명
loginOAuth 로그인 실행 (헤드리스 환경에는 --device-code, 기존 auth.json 가져오기는 --import <PATH>).
paste-redirect캡처 실패 시 리다이렉트 URL 또는 코드를 직접 붙여넣어 로그인 완료.
paste-token / setup-token구독/설정 토큰을 직접 저장 (Anthropic 구독 인증에 사용).
refresh저장된 갱신 토큰으로 액세스 토큰 갱신.
use프로바이더의 활성 프로파일 전환.
list / status저장된 프로파일 목록 조회, 또는 프로바이더별 활성 프로파일 및 토큰 만료 확인.
logout저장된 프로파일 삭제.

프로파일을 사용하면 예를 들어 개인 구독과 업무 구독을 병행하여 revka auth use로 전환할 수 있습니다. 전체 플래그 레퍼런스는 revka 모델, 프로바이더 & 인증을 참조하세요.