제안 배경
현재 OpenCodex GUI에서는 다음과 같은 다계정 및 다중 자격증명 기능을 사용할 수 있습니다.
- ChatGPT/Codex 계정 풀: 메인 계정과 추가 계정 조회, 다음 새 세션에 사용할 계정 선택
- 일반 OAuth 프로바이더: 여러 로그인 계정 저장 및 활성 계정 전환
- API 키 기반 프로바이더: 여러 API 키 저장 및 활성 키 전환
하지만 동일한 기능을 공식 ocx CLI 명령으로 사용할 수는 없는 것으로 보입니다.
현재 터미널에서 전환하려면 각 관리 API를 직접 호출해야 합니다.
Codex 계정 풀
GET /api/codex-auth/accounts
GET /api/codex-auth/active
PUT /api/codex-auth/active
일반 OAuth 계정
GET /api/oauth/accounts?provider=<provider>
PUT /api/oauth/accounts/active
API 키 풀
GET /api/providers/keys?name=<provider>
PUT /api/providers/keys/active
GUI를 사용할 수 없는 SSH 환경이나 터미널 중심 작업 환경에서는 공식 CLI 명령으로 계정과 키를 조회하고 전환할 수 있으면 편리할 것 같습니다.
제안하는 통합 명령 구조
자격증명 종류가 달라도 가능한 한 일관된 명령 구조를 제공하는 방식을 제안합니다.
프로바이더의 계정 또는 키 목록 조회
ocx account list
ocx account list <provider>
ocx account list <provider> --json
예시:
ocx account list openai
ocx account list anthropic
ocx account list xai
ocx account list cursor
ocx account list openrouter
출력 예시:
PROVIDER TYPE ID PLAN/LABEL STATUS
openai codex main free current
openai codex chatgpt-1712345678901 plus next session
anthropic oauth acct_a1b2c3 Max active
openrouter api-key key_3f8a91 personal active
이메일, 계정명, API 키는 현재 GUI 및 관리 API와 마찬가지로 마스킹된 형태만 표시하면 좋겠습니다.
현재 활성 자격증명 확인
ocx account current <provider>
ocx account current <provider> --json
예시:
ocx account current openai
ocx account current anthropic
ocx account current openrouter
계정 또는 API 키 전환
ocx account use <provider> <account-or-key-id>
예시:
# 다음 새 Codex 세션에서 사용할 추가 ChatGPT 계정 선택
ocx account use openai chatgpt-1712345678901
# Codex App의 메인 로그인 계정으로 복귀
ocx account use openai main
# Anthropic OAuth 활성 계정 변경
ocx account use anthropic acct_a1b2c3
# OpenRouter 활성 API 키 변경
ocx account use openrouter key_3f8a91
OpenAI Codex 계정 풀은 현재 GUI 동작과 동일하게 다음에 생성되는 새 Codex 세션부터 적용되고, 이미 특정 계정에 연결된 기존 thread에는 영향을 주지 않는 방식이면 좋겠습니다.
일반 OAuth 계정과 API 키는 해당 프로바이더의 활성 자격증명을 변경하는 현재 GUI 동작과 동일하면 좋겠습니다.
대안: 자격증명 유형별 하위 명령
구현상 계정과 API 키를 분리하는 편이 더 명확하다면 다음 구조도 가능할 것 같습니다.
ocx account list <provider>
ocx account use <provider> <account-id>
ocx account add <provider>
ocx account remove <provider> <account-id>
ocx key list <provider>
ocx key use <provider> <key-id>
ocx key add <provider>
ocx key remove <provider> <key-id>
다만 사용자는 프로바이더마다 OAuth인지 API 키인지 확인해야 하므로, 가능하다면 ocx account 아래에서 통합적으로 처리하는 쪽이 더 편리해 보입니다.
Codex 계정 풀 전용 옵션
Codex 계정 풀에는 일반 OAuth 계정과 다른 기능이 있으므로 다음 옵션도 지원되면 좋겠습니다.
ocx account refresh openai
ocx account auto-switch openai on
ocx account auto-switch openai off
ocx account auto-switch openai threshold 80
또는 기존 의미를 더 명확하게 유지하기 위해 아래처럼 별도 namespace를 제공할 수도 있습니다.
ocx codex-auth list
ocx codex-auth current
ocx codex-auth use <account-id|main>
ocx codex-auth refresh
ocx codex-auth auto-switch on|off
지원 대상
다중 OAuth 계정을 지원하는 프로바이더
안정적인 계정 ID 또는 이메일이 있는 OAuth 프로바이더의 저장된 계정을 조회하고 전환할 수 있으면 좋겠습니다.
예:
- xAI
- Anthropic
- Google Antigravity
- Cursor
- GitHub Copilot
Kimi와 Kiro처럼 계정 식별자가 없어 새 로그인 시 기존 슬롯을 교체하는 프로바이더는 단일 계정으로 표시하거나, CLI에서 명확한 안내를 출력하면 좋겠습니다.
API 키 기반 프로바이더
provider.apiKeyPool을 사용하는 모든 키 기반 프로바이더에서 키 목록 조회 및 활성 키 전환을 지원하면 좋겠습니다.
예:
- OpenAI API
- Anthropic API
- OpenRouter
- Google Gemini
- Azure OpenAI
- 기타 key 기반 custom provider
기대 효과
- GUI가 없는 SSH 및 원격 서버 환경에서 계정과 API 키 전환 가능
- 쉘 스크립트와 자동화 도구에서 현재 활성 자격증명 확인 가능
- 관리 API를 직접 호출하는
curl 명령을 사용하지 않아도 됨
- 실행 중인 프록시 포트를 직접 파악할 필요 없이
ocx가 runtime port를 자동 해석
--json을 이용한 자동화 및 상태 모니터링 가능
- 프로바이더마다 서로 다른 관리 API를 외울 필요가 없음
- OpenCodex의 GUI와 CLI 기능을 일관되게 유지 가능
최소 구현 범위 제안
우선 다음 명령만 있어도 핵심 사용 사례는 충족될 것 같습니다.
ocx account list <provider> [--json]
ocx account current <provider> [--json]
ocx account use <provider> <account-or-key-id>
내부적으로는 이미 존재하는 관리 API를 재사용할 수 있을 것으로 보입니다.
Codex 계정 풀
GET /api/codex-auth/accounts
GET /api/codex-auth/active
PUT /api/codex-auth/active
일반 OAuth 계정
GET /api/oauth/accounts?provider=<provider>
PUT /api/oauth/accounts/active
API 키 풀
GET /api/providers/keys?name=<provider>
PUT /api/providers/keys/active
기타 고려사항
- 액세스 토큰과 API 키 원문은 절대 출력하지 않기
- 이메일과 계정 식별 정보는 마스킹된 값만 출력하기
- 존재하지 않는 프로바이더나 계정/키 ID를 선택하면 non-zero exit code 반환
- 프록시가 실행 중이 아닐 경우 명확한 오류와 실행 안내 표시
ocx status와 동일한 방식으로 실제 runtime port 자동 감지
- OpenAI Codex 계정 수동 선택은 기존 thread가 아니라 다음 새 세션부터 적용된다는 안내 표시
- 다계정을 지원하지 않는 OAuth 프로바이더는 교체 방식임을 명확히 안내
- CLI reference 및 Providers 문서에도 새 명령 추가
검토 부탁드립니다. 감사합니다.
제안 배경
현재 OpenCodex GUI에서는 다음과 같은 다계정 및 다중 자격증명 기능을 사용할 수 있습니다.
하지만 동일한 기능을 공식
ocxCLI 명령으로 사용할 수는 없는 것으로 보입니다.현재 터미널에서 전환하려면 각 관리 API를 직접 호출해야 합니다.
GUI를 사용할 수 없는 SSH 환경이나 터미널 중심 작업 환경에서는 공식 CLI 명령으로 계정과 키를 조회하고 전환할 수 있으면 편리할 것 같습니다.
제안하는 통합 명령 구조
자격증명 종류가 달라도 가능한 한 일관된 명령 구조를 제공하는 방식을 제안합니다.
프로바이더의 계정 또는 키 목록 조회
예시:
출력 예시:
이메일, 계정명, API 키는 현재 GUI 및 관리 API와 마찬가지로 마스킹된 형태만 표시하면 좋겠습니다.
현재 활성 자격증명 확인
예시:
계정 또는 API 키 전환
예시:
OpenAI Codex 계정 풀은 현재 GUI 동작과 동일하게 다음에 생성되는 새 Codex 세션부터 적용되고, 이미 특정 계정에 연결된 기존 thread에는 영향을 주지 않는 방식이면 좋겠습니다.
일반 OAuth 계정과 API 키는 해당 프로바이더의 활성 자격증명을 변경하는 현재 GUI 동작과 동일하면 좋겠습니다.
대안: 자격증명 유형별 하위 명령
구현상 계정과 API 키를 분리하는 편이 더 명확하다면 다음 구조도 가능할 것 같습니다.
다만 사용자는 프로바이더마다 OAuth인지 API 키인지 확인해야 하므로, 가능하다면
ocx account아래에서 통합적으로 처리하는 쪽이 더 편리해 보입니다.Codex 계정 풀 전용 옵션
Codex 계정 풀에는 일반 OAuth 계정과 다른 기능이 있으므로 다음 옵션도 지원되면 좋겠습니다.
또는 기존 의미를 더 명확하게 유지하기 위해 아래처럼 별도 namespace를 제공할 수도 있습니다.
지원 대상
다중 OAuth 계정을 지원하는 프로바이더
안정적인 계정 ID 또는 이메일이 있는 OAuth 프로바이더의 저장된 계정을 조회하고 전환할 수 있으면 좋겠습니다.
예:
Kimi와 Kiro처럼 계정 식별자가 없어 새 로그인 시 기존 슬롯을 교체하는 프로바이더는 단일 계정으로 표시하거나, CLI에서 명확한 안내를 출력하면 좋겠습니다.
API 키 기반 프로바이더
provider.apiKeyPool을 사용하는 모든 키 기반 프로바이더에서 키 목록 조회 및 활성 키 전환을 지원하면 좋겠습니다.예:
기대 효과
curl명령을 사용하지 않아도 됨ocx가 runtime port를 자동 해석--json을 이용한 자동화 및 상태 모니터링 가능최소 구현 범위 제안
우선 다음 명령만 있어도 핵심 사용 사례는 충족될 것 같습니다.
내부적으로는 이미 존재하는 관리 API를 재사용할 수 있을 것으로 보입니다.
기타 고려사항
ocx status와 동일한 방식으로 실제 runtime port 자동 감지검토 부탁드립니다. 감사합니다.