OpenAI 및 Anthropic 스타일 클라이언트를 위한 독립적인 로컬 프로토콜 호환성 및 라우팅 프록시
요약
Anti-API는 OpenAI 및 Anthropic 스타일 클라이언트를 위한 독립적인 로컬 프로토콜 호환성 및 라우팅 프록시입니다. 이 프로젝트는 다양한 제공업체(OpenAI, Anthropic 등)의 모델 요청을 통합하고 관리하며, 멀티모달 입력 안전성과 신뢰할 수 있는 OAuth 흐름을 개선했습니다. 최신 버전에서는 사이드카 생명주기 관리와 결정론적 테스트 스위트가 강화되었습니다.
핵심 포인트
- OpenAI/Anthropic 스타일 클라이언트를 위한 로컬 프로토콜 호환성 제공
- 다양한 제공업체(Codex, Copilot 등)의 요청 라우팅 및 통합 개선
- 멀티모달 입력에 대한 안전성 검증 및 변환 기능 강화
- 사이드카 생명주기 관리와 결정론적 테스트 스위트 도입
OpenAI 및 Anthropic 스타일 클라이언트를 위한 독립적인 로컬 프로토콜 호환성 및 라우팅 프록시
중국어 설명 | 기능(Features) | 빠른 시작(Quick Start) | 아키텍처(Architecture)
범위 및 승인: Anti-API는 독립적이고 비공식적인 상호 운용성 프로젝트입니다. 일부 통합은 제공업체 CLI, 웹 또는 내부 엔드포인트를 사용하며 예고 없이 작동이 중단될 수 있습니다. 호환성은 제공업체의 제휴나 지지를 의미하지 않습니다. 각 제공업체의 현재 약관에 따라 본인이 소유하거나 명시적으로 관리 권한을 부여받은 계정과 서비스만 사용하십시오. 호환성을 유지하기 위해 보안 업데이트나 제공업체 제어를 비활성화하지 마십시오.
Docker 릴리스 수정(Docker release fix) - Dockerfile health-check 지침을 수정하여 multi-architecture GHCR 이미지가 Docker Buildx로 성공적으로 빌드되도록 했습니다.v3.2.1부터 패키징된 런타임 수정(Packaged runtime fixes from v3.2.1) - 아래 설명된 사이드카 생명주기 및 결정론적 Bun 테스트 스위트 수정을 포함합니다.
v3.2.1
패키징된 사이드카 생명주기(Packaged sidecar lifecycle) - 컴파일된 start 및 remote 명령은 Rust 프록시를 전체 서버 수명 주기 동안 활성 상태로 유지하는 반면, 일회성(one-shot) 명령어는 이를 시작하지 않습니다. 시그널, 시작 예외, 직접적인 CLI 종료 모두 자식 프로세스를 정리합니다.결정론적 Bun 테스트 스위트(Deterministic Bun test suite) - 공유 Codex 및 Copilot 모듈 목업은 나중에 서버에서 가져오는 데 사용되는 전체 런타임 표면을 노출하여, 테스트 파일 순서가 잘못된 누락된 내보내기 실패를 발생시키는 것을 방지합니다.릴리스 검증(Release validation) - 196개의 Bun 테스트, Rust 릴리스 컴파일, 두 개의 Bun 진입점 번들, 그리고 루프백 리스너, 사이드카 인증, 정상 종료(graceful shutdown), 일회성 동작, 강제 시작 정리(forced-startup cleanup)를 모두 다루는 컴파일된 런타임 스모크 테스트를 검증했습니다.
v3.2.0
v3.2.0
Provider 호환성 및 라우팅(Provider compatibility and routing) - Zed, Codex, Grok을 위한 Antigravity Gemini 3.1 요청 인코딩 개선, 동적 Copilot/모델 정규화, Codex 추론-노력 처리, 그리고 Responses API 멀티모달 변환 기능을 향상했습니다. 흐름 및 계정 라우트는 이제 스티키 커서(sticky cursor)를 유지하고 모든 적격 폴백 항목을 통해 랩핑됩니다.
6개 지원 제공업체(Six supported providers) - Antigravity, ChatGPT Codex, GitHub Copilot, Zed 호스팅 모델, Amazon Kiro, xAI Grok을 대시보드에서 가져오고, 목록화하고, 할당량 확인 및 라우팅할 수 있습니다 (각 제공업체의 현재 액세스 및 약관에 따름).
멀티모달 입력 안전성(Multimodal input safety) - OpenAI의 image_url과 Anthropic의 base64/원격 이미지 블록이 검증되고, 크기 제한되며, SSRF 보호를 받고, 지원되는 이미지 부분이 손실되지 않도록 제공업체 네이티브 입력으로 변환됩니다.
신뢰할 수 있는 OAuth 및 계정 흐름(Reliable OAuth and account flows) - PKCE/상태 유효성 검사 강화, 루프백 콜백 처리, 핀/비활성화 재정의를 포함한 Antigravity 클라이언트 버전 새로고침, 명시적 Zed 자격 증명 가져오기, 그리고 정리된 로그인/진단 오류 처리를 구현했습니다.
원격 추론 및 Docker 강화(Remote inference and Docker hardening) - 공개 리스너는 추론 전용이며 (기본값 8966), ANTI_API_PUBLIC_TOKEN으로 토큰 게이팅됩니다. 대시보드와 관리 API는 컨테이너 모드를 포함하여 루프백/토큰 보호를 유지합니다.
Windows 패키징 및 Kiro 지원(Windows packaging and Kiro support) - 플랫폼 안전 브라우저 실행, 복원력 있는 start.bat 동작, 체크섬이 적용된 휴대용/WinGet 번들을 추가하고, Kiro 도구/이미지/취소 처리 기능을 구현했습니다. 구식 macOS 언어 서버 프로빙은 제거되었습니다.
취소, 제한 및 로그 안전성(Cancellation, limits, and log safety) - 라우팅된 제공업체를 통해 요청 중단을 전파하고, 요청 본문과 스트림을 제한하며, 쿨다운 인식 404/429 폴백을 적용하고, 로그에서 상위 응답 본문 및 자격 증명 자료를 제거했습니다.
릴리스 검증은 TypeScript 체크, 190개의 Bun 테스트, Rust 테스트 및 릴리스 빌드, 프로덕션 대시보드 번들, 아카이브 레이아웃, 체크섬 생성, 그리고 로컬 HTTP 스모크 체크를 포함했습니다. 라이브 제공자 호출에는 여전히 운영자가 소유하거나 관리하는 자격 증명이 필요합니다.
Grok 제공자 지원 - 기존 제공자와 함께 xAI Grok을 Grok CLI 리버스 프록시(cli-chat-proxy.grok.com, OpenAI Responses API)를 통해 추가했으며, 계정 가져오기, 모델 라우팅 및 할당량 저장소 통합 기능을 제공합니다.
두 개의 Grok 모델 노출 - 표준 ModelName인 grok-build (Xbuild로 표시되며, Grok CLI 내부에서 보이는 실제 Grok 4.3 모델에 매핑됨)과 grok-composer-2.5-fast (Composer 2.5 Fast)가 추가되었습니다.
명시적 자격 증명 가져오기 - 사용자의 조치 후 Grok이 기존 로컬 CLI 세션을 가져올 수 있습니다. 별도의 로그인 흐름은 추가되지 않았습니다. 제공자 정책, 할당량 및 계정 강제 결정은 여전히 적용됩니다.
v3.0.0
Kiro 제공자 지원 - 기존 제공자와 함께 Kiro 계정 가져오기, 할당량 가시성, 모델 라우팅 및 리버스 프록시 지원이 추가되었습니다.
대시보드 i18n - 전역 중국어 지원, 시스템 언어 기본 감지, 설정 언어 전환 기능이 추가되었습니다.
계정 진단 도우미 - 누락된 계정 파일, CLI 도구, 콜백 포트 및 제공자 설정을 확인하기 위한 로컬호스트 전용 진단 패널이 추가되었습니다.
패널 업데이트 - WinGet과 Docker를 위한 패키지 관리자 안전장치를 갖춘 로컬호스트 전용 업데이트 검사기 및 소스 설치 업데이트기가 추가되었습니다.
Docker 지원 강화 - Docker 기본값, OAuth 포트 범위, 상태 확인(health checks), 개발 compose 분리, 그리고 Docker별 업데이트 가이드가 업데이트되었습니다.
v2.9.0
안정적인 Homebrew 패키지 - 이제 Homebrew는 미리 빌드된 macOS Apple Silicon 번들을 설치하므로, brew install anti-api는 더 이상 로컬 Rust, LLVM 또는 Bun 다운로드에 의존하지 않습니다.
WinGet 배포 파이프라인 - Windows 휴대용 패키징, WinGet 매니페스트 생성 및 winget install anti-api를 위한 릴리스 워크플로우가 추가되었습니다.
통합 런처 동작 (Unified launcher behavior) - Homebrew 및 WinGet 설치가 이제 동일한 계약(anti-api)을 공유합니다.
터미널에서 서비스를 직접 시작합니다.
포터블 런타임 지원 (Portable runtime support) - Rust 프록시를 시작하고, 번들된 대시보드 파일을 제공하며, 패키지 관리자 자체 업데이트 충돌을 방지하는 Windows 포터블 진입점(entrypoint)이 추가되었습니다.
패키지 관리자 보호 장치 (Package-manager safeguards) - Homebrew/WinGet 설치는 이제 자체 덮어쓰기 대신 brew upgrade anti-api 및 winget upgrade anti-api로 업데이트를 리디렉션합니다.
v2.8.0
Zed 호스팅 모델 지원 (Zed hosted-model support) - Anti-API가 승인된 Zed 호스팅 계정 및 모델을 라우팅할 수 있습니다.
계정별 동적 모델 가져오기 (Per-account dynamic model fetch) - 사용 가능한 각 Codex 및 Copilot 계정에서 실시간 모델을 라우팅하여 가져오며, 이제 Zed 계정 수준의 모델 동기화도 포함합니다.
Zed 계정 동작 명확화 (Zed account behavior clarified) - Zed 계정은 하나씩 가져와 Anti-API에 유지할 수 있지만, Codex/Copilot처럼 일괄적으로 자동 검색될 수는 없습니다.
Zed 할당량 위젯 업데이트 (Zed quota widget updated) - Zed 카드는 이제 오해의 소지가 있는 남은 크레딧 비율 대신 공유된 모든 모델 지원 상태와 청구 주기 타이밍을 표시합니다.
Zed 안정성 강화 (Zed stability hardening) - Zed 계정 가져오기, 모델 동기화 및 완료 요청에 대한 요청 시간 초과(request timeouts) 및 성공 상태 복구 기능이 추가되었습니다.
v2.7.1
계정별 모델 가져오기 (라우팅) (Per-account model fetch (Routing)) - 모델 목록은 이제 정적 프리셋에 의존하는 대신 로그인된 각 Codex/Copilot 계정에서 가져옵니다.
Antigravity 가져오기 통합 (단일 계정) (Antigravity fetch integration (single account)) - 라우팅은 이제 사용 가능한 첫 번째 Antigravity 계정에서 실시간 모델 가져오기를 시도하고, 사용 불가능할 경우 안전하게 폴백(fall back)합니다.
계정 수준 모델 맵 추가 (Account-level model map in) - UI가 계정별 모델 목록을 직접 렌더링할 수 있도록 /routing/config 내에 accountModels를 추가했습니다.
라우팅 패널 모델 렌더링 업데이트 (Routing panel model rendering update) - 계정 카드는 이제 먼저 가져온 계정 수준 데이터의 모델을 표시하고, 그 다음 폴백 모델을 표시합니다.
v2.7.0
Antigravity 정책 공지 - 이 비공식 통합은 현재 제공업체의 약관과 충돌할 수 있습니다. 코드베이스에 존재한다는 것이 특정 사용이 허용된다는 것을 의미하지 않으므로, 사용 전에 해당 약관을 확인하십시오.개별 제공업체 약관 - Codex와 GitHub Copilot은 자체적인 최신 약관의 적용을 받습니다. Anti-API는 모든 제공업체 통합이 승인되었거나 정책 변경의 영향을 받지 않는다는 포괄적인 주장을 하지 않습니다.IDE 로그아웃 - Antigravity IDE에서 한 번의 클릭으로 로그아웃하는 새로운 기능(IDE를 닫고, 인증 정보를 지우며, 다른 계정을 사용할 준비가 됩니다.)
v2.7.0
요청별 로그 컨텍스트 격리 - 오류 로그가 더 이상 동시성 작업에서 모델/계정을 혼합하지 않습니다.Copilot TLS 강화 - 기본 TLS 검증이 복원되었습니다. 제한된 네트워크를 위해 선택적으로 ANTI_API_COPILOT_INSECURE_TLS=1을 사용할 수 있습니다.Codex TLS 강화 - 기본 TLS 검증이 복원되었습니다. 제한된 네트워크를 위해 선택적으로 ANTI_API_CODEX_INSECURE_TLS=1을 사용할 수 있습니다.라우팅 설정 탄력성 - Copilot 모델 동기화 및 할당량 집계를 위한 소프트 타임아웃 및 캐싱 기능을 제공합니다.동적 모델 동기화 - 라우팅이 이제 인증된 계정에서 Codex/Copilot 모델 목록을 가져와 정적 폴백과 동기화합니다.테스트 기준선 수정 - bun test ./test는 레거시 폴더를 피하고, 업데이트된 목(mocks) 및 기본 설정을 사용합니다.
v2.6.2
Flow + 계정 라우팅 - 비공식 모델을 위한 사용자 지정 플로우, 제공업체 네이티브 모델 ID를 위한 계정 체인
6개 제공업체 - Antigravity, ChatGPT Codex, GitHub Copilot, Zed 호스팅 모델, Amazon Kiro, xAI Grok
원격 접속 - 원클릭 설정의 ngrok/cloudflared/localtunnel 지원
추론 전용 공개 게이트웨이 - 원격 클라이언트를 위한 별도의 토큰 기반 리스너; 대시보드, 자격 증명, 로그, 설정 및 업데이트기는 비공개 유지
전체 대시보드 - 할당량 모니터링, 라우팅 구성, 설정 패널
쿨다운 인식 장애 조치 - 할당량, 인증, 404, 429 또는 일시적인 상위 스트림 실패 후의 고정적이고 순환적인 계정 선택
듀얼 포맷 - OpenAI 및 Anthropic API 호환
도구 호출 (Tool Calling) - Claude Code 및 CLI 도구를 위한 함수 호출
멀티모달 요청 - 호환되는 제공업체 어댑터를 통한 검증된 텍스트, 이미지, 도구 및 스트리밍 콘텐츠 지원
전체 대시보드와 관리 API는 기본적으로 루프백(loopback)에 바인딩됩니다. 원격 접속은 별도의 추론 전용 리스너(기본값 8966)를 사용하며 ANTI_API_PUBLIC_TOKEN을 필요로 합니다. 터널링 과정에서 자격 증명, 로그, 설정, 계정 관리 또는 업데이트기는 절대 노출되지 않습니다. 자격 증명 가져오기는 기본적으로 명시적이며, ~/.anti-api 아래에 로컬 사본을 생성합니다.
명시적 가져오기만 가능 - ANTI_API_ZED_CREDENTIALS_FILE을 절대 경로의 소유자 전용 JSON 파일로 설정한 다음, '계정 추가 -> Zed'를 클릭합니다. Anti-API는 Zed.app, Keychain 또는 다른 애플리케이션의 데이터베이스를 검사하지 않습니다.
자격 증명 형식 - 파일 크기는 64 KiB를 초과할 수 없으며 `{
재가져오기(re-import)할 때 Anti-API는 다른 애플리케이션의 자격 증명을 자동으로 스캔하거나 새로 고치지 않습니다.여러 계정 - Zed에서 계정을 전환하고, 승인된 각 자격 증명 파일을 내보낸 다음, 하나씩 가져옵니다. 가져온 계정은 Anti-API에 저장된 상태로 유지됩니다.할당량 모니터링 동작 - Zed 호스팅 모델은 계정 전체에 걸쳐 월별 지출 풀을 공유합니다. Anti-API는 현재 정확한 남은 달러 크레딧이 아닌, 호스팅 액세스 상태와 청구 기간만 표시합니다.
# 의존성 설치
bun install
# 서버 시작 (기본 포트: 8964)
...
start.bat을 더블클릭하여 실행합니다.
시작이 실패하면 창이 열려 오류가 계속 표시됩니다. ANTI_API_NO_PAUSE=1은 원격으로 실행되는 스크립트에만 설정하세요.
WinGet 패키징은 이 저장소에서 준비되었습니다. winget-pkgs 제출이 병합되면 설치 경로는 다음과 같습니다:
winget install anti-api
anti-api
설치 후, anti-api는 모든 터미널에서 서비스를 직접 시작합니다.
start.command를 더블클릭하여 실행합니다.
다중 아키텍처 이미지(linux/amd64, linux/arm64)는 GHCR에 게시되므로 대부분의 사용자는 로컬에서 빌드할 필요가 없습니다.
컨테이너를 시작하기 전에 길고 무작위인 제어 평면 토큰(control-plane token)을 생성하세요. 대시보드와 관리 API는 Docker 포트가 localhost에만 게시되는 경우에도 이 토큰이 필요합니다.
export ANTI_API_CONTROL_TOKEN='replace-with-a-long-random-secret'
docker run -d --name anti-api \
-p 127.0.0.1:8964:8964 -p 127.0.0.1:1455-1465:1455-1465 -p 127.0.0.1:51121-51131:51121-51131 \
...
또는 Compose를 사용합니다 (사전 빌드된 이미지를 가져와 백그라운드에서 실행):
docker compose pull
docker compose up -d
Windows에서는 먼저 $env:ANTI_API_CONTROL_TOKEN을 긴 무작위 값으로 설정한 다음, PowerShell에서 동일한 Docker 명령을 실행합니다 (-e 인수에 $env:ANTI_API_CONTROL_TOKEN 사용). 이름 있는 볼륨 anti-api-data는 Docker가 관리하므로 잘못된 $HOME/경로 설정이 없습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기