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 Copilot | revka auth login (또는 device-code)으로 OAuth 흐름을 실행하고 토큰을 캐시 |
| 다른 CLI 자격 증명 재사용 | gemini-cli, claude-code, kilocli, Qwen Code | Revka가 인증된 바이너리를 실행하거나 디스크의 자격 증명 파일을 읽음 |
| OAuth 토큰 환경 변수 | MiniMax, Qwen | 환경 변수로 OAuth/갱신 토큰을 직접 제공하면 Revka가 갱신 처리 |
서브프로세스 프로바이더(gemini-cli, claude-code, kilocli)는 키를 보유하지 않습니다. 자체 세션을 유지하는 바이너리를 셸에서 실행합니다. 토큰 환경 변수 프로바이더(MiniMax, Qwen)는 OAuth 액세스 토큰 또는 Revka가 인-프로세스로 갱신하는 갱신 토큰을 받습니다.
OpenAI Codex
섹션 제목: “OpenAI Codex”openai-codex 프로바이더(별칭 codex)는 ChatGPT/Codex 구독의 OAuth 자격 증명을 사용하여 https://chatgpt.com/backend-api/codex/responses의 OpenAI Responses API — Chat Completions와는 다른 엔드포인트 — 와 통신합니다. SSE 스트리밍, 추론 수준(reasoning-effort), 네이티브 도구 호출(사전 실행 도구 호출 패스스루 포함)을 지원합니다.
# 브라우저/리다이렉트 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에 캐시합니다. 리다이렉트를 캡처할 수 없는 환경에서는 수동으로 완료합니다.
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_effort | string | 추론 깊이: minimal, low, medium, high, xhigh. REVKA_CODEX_REASONING_EFFORT 환경 변수로도 설정 가능. |
REVKA_CODEX_RESPONSES_URL | env | Responses API 엔드포인트 재정의. |
REVKA_CODEX_BASE_URL | env | 기본 URL 재정의. |
Gemini CLI
섹션 제목: “Gemini CLI”gemini-cli 프로바이더는 Google의 Gemini CLI인 gemini 바이너리를 자식 프로세스로 실행하고 stdin으로 프롬프트를 전달합니다. CLI 자체의 자격 증명 저장소를 재사용하므로 Revka API 키가 필요 없습니다 — gemini 바이너리가 미리 설치되어 로그인되어 있어야 합니다.
default_provider = "gemini-cli"default_model = "gemini-2.5-pro"| 설정 | 타입 | 설명 |
|---|---|---|
GEMINI_CLI_PATH | env | gemini 바이너리 경로. 기본값: PATH에서 gemini. |
전체 대화 기록, API 키, OAuth 토큰 재사용, 또는 Vertex AI를 통해 Gemini API에 직접 접근하려면 gemini 프로바이더를 사용하세요. 클라우드 API 프로바이더 (Gemini, Bedrock, Azure)를 참조하세요.
Claude Code
섹션 제목: “Claude Code”claude-code 프로바이더는 Claude Code CLI인 claude 바이너리를 자식 프로세스로 실행하고 stdin으로 프롬프트를 전달하며, Claude Code의 자체 인증을 재사용합니다. 별도의 API 키가 필요 없으며 claude 바이너리가 설치되어 인증된 상태여야 합니다.
default_provider = "claude-code"default_model = "claude-sonnet-4-6"| 설정 | 타입 | 설명 |
|---|---|---|
CLAUDE_CODE_PATH | env | claude 바이너리 경로. 기본값: PATH에서 claude. |
Gemini CLI, KiloCLI와 달리, Claude Code는 전체 대화(시스템 프롬프트 및 이전 모든 턴)를 하나의 레이블 붙은 프롬프트로 평탄화하여 전달합니다 — 즉 멀티턴 기록이 보존됩니다. 온도 값이 0.7/1.0 이외인 경우 가장 가까운 지원 값으로 자동 클램프됩니다(비유한 값만 오류 발생). Gemini CLI와 KiloCLI는 지원하지 않는 온도를 오류로 거부합니다. 요청당 타임아웃은 120초입니다.
KiloCLI
섹션 제목: “KiloCLI”kilocli 프로바이더(별칭 kilo)는 KiloCLI인 kilo 바이너리를 실행하며 구조적으로 Claude Code 프로바이더와 동일합니다. KiloCLI가 별도로 설치되어 인증된 상태여야 합니다.
default_provider = "kilocli"default_model = "default"| 설정 | 타입 | 설명 |
|---|---|---|
KILO_CLI_PATH | env | kilo 바이너리 경로. |
다른 서브프로세스 프로바이더와 동일한 제약이 적용됩니다. 멀티턴 기록 없음, 온도 0.7/1.0만 허용, 120초 타임아웃.
GitHub Copilot
섹션 제목: “GitHub Copilot”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_key | string | GitHub OAuth 토큰 (단기 Copilot 키가 아님). 설정 파일 또는 환경 변수에 저장되는 값. |
| 토큰 캐시 | 경로 | ~/.config/revka/copilot/ (api-key.json 및 access-token 포함). |
device-code 흐름 중 Revka는 브라우저에서 승인할 URL과 사용자 코드를 출력합니다.
MiniMax OAuth 모드
섹션 제목: “MiniMax OAuth 모드”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"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_REGION | global 또는 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에서 자동으로 결정됩니다.
Qwen / Qwen Code OAuth 모드
섹션 제목: “Qwen / Qwen Code OAuth 모드”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_URL | OAuth 세션에서 가져온 엔드포인트 재정의. |
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, 전체 별칭-리전 맵)은 중국 리전 프로바이더를 참조하세요.
revka auth 흐름
섹션 제목: “revka auth 흐름”위의 OAuth 기반 프로바이더는 revka auth 명령어 그룹으로 관리합니다. 가장 많이 사용하는 흐름은 다음과 같습니다.
revka auth login --provider openai-codex # OAuth 로그인 시작revka auth login --provider openai-codex --device-coderevka auth login --provider gemini --profile work # 명명된 프로파일revka auth status # 활성 프로파일 + 프로바이더별 토큰 만료 확인revka auth use --provider openai-codex --profile workrevka auth refresh --provider openai-codex # 토큰 강제 갱신revka auth logout --provider openai-codex| 명령어 | 설명 |
|---|---|
login | OAuth 로그인 실행 (헤드리스 환경에는 --device-code, 기존 auth.json 가져오기는 --import <PATH>). |
paste-redirect | 캡처 실패 시 리다이렉트 URL 또는 코드를 직접 붙여넣어 로그인 완료. |
paste-token / setup-token | 구독/설정 토큰을 직접 저장 (Anthropic 구독 인증에 사용). |
refresh | 저장된 갱신 토큰으로 액세스 토큰 갱신. |
use | 프로바이더의 활성 프로파일 전환. |
list / status | 저장된 프로파일 목록 조회, 또는 프로바이더별 활성 프로파일 및 토큰 만료 확인. |
logout | 저장된 프로파일 삭제. |
프로파일을 사용하면 예를 들어 개인 구독과 업무 구독을 병행하여 revka auth use로 전환할 수 있습니다. 전체 플래그 레퍼런스는 revka 모델, 프로바이더 & 인증을 참조하세요.
관련 페이지
섹션 제목: “관련 페이지”- revka 모델, 프로바이더 & 인증 —
revka auth명령어 및 플래그 전체 레퍼런스. - 프로바이더 카탈로그 — 모든 프로바이더 ID, 별칭, 기본 URL, 기능 목록.
- 클라우드 API 프로바이더 (Gemini, Bedrock, Azure) — Gemini CLI 대신 API 키/ADC 방식의
gemini프로바이더. - 중국 리전 프로바이더 — GLM, Kimi 등과 함께하는 MiniMax 및 Qwen 리전 라우팅.
- 시크릿, 페어링 & 디바이스 인증 — 저장된 자격 증명의 보호 방식.
- Config: 프로바이더, 에이전트 & 라우팅 — 이 프로바이더들을 지원하는
config.toml키.