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 백엔드를 함께 실행할 수 있습니다.
시작 방법
- Docker(권장) – 저장소를 클론하고
.env.example을.env로 복사한 후 OpenCode 서버 비밀번호와 비밀API_KEY를 입력하고docker compose up -d를 실행합니다. 프록시는 기본적으로 포트 10000에서 수신 대기합니다. - 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와 같은 초기 커뮤니티 프록시를 기반으로 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트