MAXeaglet/commandcode-proxy

Command Code API 反代代理,兼容 OpenAI 与 Anthropic 接口 | Reverse proxy exposing Command Code API as OpenAI- and Anthropic-compatible endpoints

해결하는 문제

Command Code의 자체 API는 프로퍼라이어터리이며 CLI에 종속되어 있습니다. 이 프로젝트는 널리 사용되는 OpenAI Chat Completions 및 Anthropic Messages 형식으로 해당 프로토콜을 변환하는 가벼운 리버스 프록시를 제공하여, 이러한 표준을 지원하는 도구(예: Python SDK, Cursor, OpenCode)가 커스텀 코드 없이 Command Code 모델을 호출할 수 있도록 합니다.

작동 방식

이 프록시는 외부 종속성이 없는 단일 Node.js 파일입니다. 공식 CLI의 네트워크 트래픽을 관찰하여 Command Code 요청 프로토콜을 재현합니다. 각 요청마다 디바이스 지문과 라이프사이클 사전 요청을 수행하고, CLI 스타일의 래핑(설정, 메모리, 취향, 기술, 권한 모드, 매개변수)을 구성한 후 Command Code API로 전달합니다. 이후 응답을 OpenAI 또는 Anthropic 형식으로 변환하며, 스트리밍 Server-Sent Events, 도구 호출, 다중 모달 이미지 입력, 추론 노력 매핑, 캐시 히트 사용 메트릭스를 포함합니다. 또한 탐지 방지 신호를 마스킹: 주기적으로 갱신되는 키 기반 디바이스 지문, 랜덤화된 세션 만료, npm에서 자동으로 가져온 버전 헤더, OpenTelemetry traceparent 헤더. 강건성 기능으로는 클라이언트 연결 끊김 시 업스트림 중단, 출력 없음 및 연속 타임아웃 재시도 시 HTTP 429 반환, 100MB 요청 본문 제한이 포함됩니다.

대상 사용자

Command Code에 가입하고 기존 OpenAI 또는 Anthropic 호환 도구(예: 공식 SDK를 사용하는 Python 스크립트, Cursor 커스텀 프로바이더, OpenCode)를 통해 모델을 사용하고자 하는 개발자. 본 프로젝트는 개인적·교육적 용도로만 사용되며 Command Code와는 관련이 없습니다.

주요 특징

  • 두 가지 호환성 엔드포인트: OpenAI Chat Completions (/v1/chat/completions) 및 Anthropic Messages (/v1/messages), 둘 다 스트리밍 및 비스트리밍을 지원합니다.
  • 자동 프로토콜 변환: Anthropic 시스템 프롬프트, tool_result 블록, input_schema, tool_choice, 사고 예산은 OpenAI의 동등한 항목으로 매핑됩니다.
  • /v1/models를 통한 동적 모델 목록: 5분 캐시 및 하드코딩된 백업 제공.
  • 디바이스 지문 위장 및 라이프사이클 에뮬레이션을 통해 정상 CLI 트래픽을 모방합니다.
  • 출력 없음 및 무응답 타임아웃 감지 시 HTTP 429 반환으로 SDK가 자동 재시도되도록 하여 오류 청구를 방지합니다.
  • 외부 종속성이 없는 단일 파일로 실행 가능; amd64 및 arm64용 Docker 이미지가 GHCR에 게시됨.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트