TiaraBasori/OpenCode2API

Wrap OpenCode into an OpenAI-compatible API and use models from OpenCode Zen for free unlimitedly. | 把 OpenCode 封装成 OpenAI 兼容 API,无限白嫖来自 OpenCode Zen 的模型。

OpenCode2API – OpenCode에서 OpenAI 호환 API로의 브리지

이것이 무엇인가

  • 로컬에서 실행되는 OpenCode 서버(OpenCode AI 모델용 런타임) 앞에 위치하는 오픈소스 Node.js 프록시로, OpenAI, Anthropic(Claude) 및 기타 LLM 제공업체가 사용하는 것과 동일한 HTTP 엔드포인트를 노출합니다.
  • 이를 통해 OpenAI /v1/chat/completions(또는 Anthropic /v1/messages) API와 통신하는 방법을 아는 모든 클라이언트는 코드 변경 없이 무료 OpenCode Zen 모델을 사용할 수 있습니다.

주요 기능

  • OpenAI 호환 엔드포인트 – /v1/models, /v1/chat/completions, /v1/responses(사용자 지정 스트리밍 + 추론 엔드포인트) 및 /v1/messages(Anthropic 스타일). 전체 Server-Sent Events(SSE) 스트리밍이 지원됩니다.
  • 추론 제어 – 호출자는 reasoning_effort 또는 reasoning: {"effort":"high"} 필드를 통해 모델이 추론에 더 많은 "노력"을 기울이도록 요청할 수 있습니다.
  • 도구 호출 – 프록시는 클라이언트의 도구 사양을 전달하고 표준 tool_calls/function_call 객체를 반환하며, 선택적으로 사용할 수 있는 내장 OpenCode 도구를 제한할 수 있습니다.
  • 세션 연속 – Responses API는 이전 응답 ID를 참조하여 대화를 최대 30분 동안 유지할 수 있습니다.
  • 관찰 가능성 – 상태 확인(/health, /health/details), Prometheus 메트릭(/metrics), 선택적 읽기 전용 웹 패널(/panel).
  • Docker 우선 배포 – 단일 docker compose up -d 명령으로 프록시와 OpenCode 백엔드를 함께 실행할 수 있습니다.

시작 방법

  1. Docker(권장) – 저장소를 클론하고 .env.example을 .env로 복사한 후 OpenCode 서버 비밀번호와 비밀 API_KEY를 입력하고 docker compose up -d를 실행합니다. 프록시는 기본적으로 포트 10000에서 수신 대기합니다.
  2. Node.js 개발 – OpenCode CLI를 설치하고 npm install을 실행한 후 config.json.example을 config.json으로 복사하고 npm start를 실행합니다.

일반적인 사용법

  • 채팅 완성 – opencode/big-pickle과 같은 모델 이름으로 /v1/chat/completions에 일반적인 OpenAI 스타일 POST 요청.
  • Responses API – reasoning 객체를 허용하여 더 높은 노력 처리를 요청할 수 있는 스트리밍 호출.
  • 도구 호출 – 요청에 tools 배열을 포함하면 프록시가 tool_calls(또는 Anthropic 스타일 tool_use 블록)를 반환하며, 클라이언트가 이를 실행하고 피드백할 수 있습니다.
  • Anthropic 호환성 – /v1/messages 엔드포인트는 x-api-key 헤더와 Anthropic 특정 SSE 이벤트 이름을 사용하여 Claude SDK와 함께 작동합니다.

구성 하이라이트

변수 용도
API_KEY 모든 프록시 요청에 필요한 비밀 토큰(Bearer 헤더).
OPENCODE_API_KEYS 다중 사용자 설정을 위한 선택적 쉼표로 구분된 name:key 쌍 목록.
OPENCODE_SERVER_PASSWORD 기본 OpenCode 백엔드의 비밀번호.
OPENCODE_DISABLE_TOOLS true로 설정하면 명시적으로 허용되지 않는 한 모든 내장 OpenCode 도구를 차단합니다.
OPENCODE_INTERNAL_ALLOWED_TOOLS 클라이언트가 자체 tools를 제공하지 않을 때 사용할 수 있는 내부 도구의 화이트리스트.
OPENCODE_WEB_PANEL_ENABLED 선택적 /panel 대시보드를 켜거나 끕니다.
OPENCODE_PROXY_AUTO_CLEANUP_CONVERSATIONS TTL 만료 후 저장된 대화 상태를 자동으로 제거합니다.

이것을 사용할 사람

  • OpenAI API에 의존하지만 무료, 로컬 호스팅 OpenCode 모델을 실행하려는 개발자.
  • OpenAI 스타일 및 Anthropic 스타일 클라이언트 모두를 위한 단일 엔드포인트가 필요한 팀.
  • OpenCode 백엔드를 프록시 뒤에 격리하면서 도구 호출 지원을 원하는 모든 사람.

라이선스 – MIT, 따라서 프록시를 자유롭게 수정, 포함 또는 재배포할 수 있습니다.

감사의 말 – 이 프로젝트는 dxxzst/opencode-to-openai 및 lucasliet/opencode-openai-proxy와 같은 초기 커뮤니티 프록시를 기반으로 합니다.

관련

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