본문으로 건너뛰기

트렌딩 - GitHub 인기 레포 & HuggingFace 모델

schmarta/claude-code-openai-server

Python0 / 0

Claude CLI를 OpenAI API 호환 HTTP로 포워딩하는 소형 서버

TL;DR

Claude CLI에 이미 로그인되어 있고 로컬에서 OpenAI 호환 클라이언트를 사용하려는 개발자에게 적합합니다. 작동 방식은 각 대화를 별도 Claude subprocess로 유지하고 stream-json을 통해 stdin/stdout으로 통신하며, Function Calling은 in-process MCP 브리지로 처리해 툴 호출-응답-재개 흐름을 한 대화로 유지합니다. 보안상 기본이 loopback 바인드이고 비-루프백 바인드 시에는 긴 랜덤 CCI_API_KEY와 TLS 배치가 권장되며, permission_mode=bypassPermissions가 기본이라 공개 노출 시 임의 코드 실행 위험을 반드시 고려해야 합니다. 냉시작 완화를 위한 warm pool이 있으나 유휴 프로세스당 약 200MB 메모리 비용과 리필 시 지연 스파이크 위험이 있으므로 단일 사용자 환경에서는 1–2로 제한하는 것이 적절합니다.

핵심 포인트

  • 레포는 standalone tool 성격의 로컬 HTTP 서버로, Claude CLI를 OpenAI API 호환 인터페이스로 노출합니다. 내부적으로는 각 대화를 별도 Claude subprocess로 유지하고 stream-json(표준 입출력)으로 Claude와 통신합니다. 이 구조 덕분에 OpenAI Python SDK나 Open WebUI 같은 클라이언트를 변경 없이 연결해 Claude Code를 로컬에서 사용하게 할 수 있습니다.
  • 보안과 실행 요건이 사용 결정을 좌우합니다. 동작을 위해 로컬에 설치된 claude CLI에 이미 로그인되어 있어야 하고 uv 및 Python 3.11+가 필요하며, 기본 바인드는 127.0.0.1로 설정되어 비-루프백 바인드 시에는 CCI_API_KEY를 반드시 요구하도록 서버가 시작을 거부합니다. 서버가 기본으로 claude를 permission_mode=bypassPermissions로 구동하므로 공개 바인드나 키 없이 노출하면 원격에서 임의 코드 실행이 가능해 실제 배포 전 인증·TLS·네트워크 경계 설계가 필수입니다.
  • 기능 면에서 OpenAI 호환 표면을 충실히 제공하며 함수 호출(Function Calling)을 지원합니다. 클라이언트의 tools 스키마를 in-process MCP 브리지로 Claude에 전달하고 Claude가 호출하면 서버가 tool_calls 응답을 반환해 대화 상태를 SUSPENDED로 보관한 뒤 클라이언트가 결과를 반송하면 같은 subprocess가 재개되는 방식으로 멀티스텝 툴 루프를 유지합니다. 이 방식은 Claude의 내장 도구와 별도로 'bare model mode'로 Claude의 동적 컨텍스트·아이덴티티를 제거하고 클라이언트가 제공한 툴만 노출하는 운영도 가능해 다양한 프론트엔드와의 호환성을 확보합니다.
  • 운영·성능 관련 고려사항이 명확히 문서화되어 있습니다. 냉시작을 줄이기 위한 warm pool 옵션(CCI_WARM_POOL_SIZE)을 제공하며 각 유휴 프로세스는 약 200MB의 RAM을 소모하고 풀은 서명(signature)에 따라 재사용되며 리필 동작이 지연을 유발할 수 있다는 점을 설명합니다. 배포는 systemd 사용자 유닛 예시가 제공되어 서비스화가 쉽고, bench.py로 spawn/TTFT/throughput의 p50·p95를 JSON으로 측정할 수 있으므로 실제 환경에서 비용·지연·메모리 트레이드오프를 검증할 수 있습니다.

벤치마크

벤치마크지표비교
scripts/bench.py (spawn/TTFT/total/throughput p50/p95)p50/p95 of spawn_ms, ttft_ms, total_ms, tok_per_s스크립트가 자체 uvicorn 인스턴스를 띄워 대표적인 턴을 실행하고 p50/p95 결과를 JSON으로 출력함

47

Stars

10

Forks

+204

Trending

0

조회수

47 watchers2 open issues

관련 토론

아직 관련 토론이 없습니다.

댓글

댓글을 작성하려면 로그인이 필요합니다.