LM Proxy
OpenAI 및 Anthropic과 호환되는 REST API를 통해 외부 애플리케이션이 VSCode의 GitHub Copilot 기능을 사용할 수 있도록 하는 확장 프로그램입니다. 이 확장 프로그램을 사용하면 VSCode 환경 밖에서도 GitHub Copilot의 강력한 기능을 활용할 수 있습니다. 본 확장 프로그램은 VSCode Language Model API (LM API)를 사용하여 GitHub Copilot에서 제공하는 언어 모델과 통신합니다.
기능(Features)
- 외부 GitHub Copilot 접근: VSCode 내뿐만 아니라 모든 애플리케이션에서 GitHub Copilot의 강력한 AI 기능을 사용할 수 있습니다.
- OpenAI 및 Anthropic 호환 API: OpenAI와 Anthropic 인터페이스와 호환되는 업계 표준 API 형식을 통해 GitHub Copilot에 접근할 수 있습니다.
- CLI 기반 코딩 어시스턴트 지원: Claude Code 및 OpenAI Codex CLI를 포함하여 OpenAI 또는 Anthropic API 형식을 지원하는 다양한 CLI 기반 코딩 어시스턴트와 호환됩니다.
- 다중 모델 지원: GitHub Copilot의 모델을 포함하여 VSCode에서 사용 가능한 여러 언어 모델 간에 원활하게 전환할 수 있습니다.
- 서버 관리: VSCode 명령 팔레트 또는 상태 표시줄을 통해 프록시 서버를 쉽게 시작하고 중지할 수 있습니다.
- 스트리밍 지원: 실시간 애플리케이션을 위한 스트리밍 응답을 완벽하게 지원합니다.
- 유연한 구성: 필요한 요구 사항에 맞게 서버 포트와 로그 레벨을 사용자 정의할 수 있습니다.
설치(Installation)
-
VSCode에서 확장(Extensions) 보기로 이동합니다.
-
명령어 팔레트(Command Palette)를 엽니다.
-
LM Proxy: LM 프록시 서버 중지(Stop LM Proxy Server) 명령어를 실행합니다.
언어 모델 선택하기 (Selecting a Language Model)
- 명령어 팔레트를 엽니다.
- 다음 명령어 중 하나를 실행합니다:
LM Proxy: OpenAI API 모델 선택(Select OpenAI API Model)
LM Proxy: Anthropic API 모델 선택(Select Anthropic API Model)
LM Proxy: Claude Code 백그라운드 모델 선택(Select Claude Code Background Model)
LM Proxy: Claude Code 사고 모델 선택(Select Claude Code Thinking Model)
- 목록에서 원하는 모델을 선택합니다.
CLI 기반 코딩 도우미와 함께 사용하기 (Use with CLI-based Coding Assistants)
이 확장 프로그램은 OpenAI 또는 Anthropic API 형식을 지원하는 다양한 CLI 기반 코딩 도우미와 호환됩니다:
Claude Code
Claude Code를 사용하려면 ANTHROPIC_BASE_URL 환경 변수를 설정해야 할 수 있습니다. ANTHROPIC_BASE_URL을 http://localhost:4000/anthropic/claude로 설정합니다 (다른 포트를 구성했다면 4000을 대체하세요).
이렇게 하면 LM Proxy가 제공하는 엔드포인트를 통해 Claude Code를 사용할 수 있습니다. 즉, GitHub Copilot이 제공하는 LLM에 대해 Claude Code를 통해 접근할 수 있다는 의미입니다.
OpenAI Codex CLI
OPENAI_API_KEY 환경 변수를 더미 값(예: 'xxx')으로 설정합니다.
- 다음 구성을
~/.codex/config.toml에 추가합니다:
model = "vscode-lm-proxy"
model_provider = "vscode-lm-proxy"
...
기타 CLI 기반 코딩 도우미 (Other CLI-based Coding Assistants)
OpenAI API 또는 Anthropic API와 호환되며 기본 URL 및 모델 이름 구성을 허용하는 다른 모든 CLI 기반 코딩 도우미도 LM Proxy를 활용할 수 있어야 합니다. 단순히 기본 URL을 LM Proxy 서버가 가리키도록 구성하고 적절한 모델 이름을 설정하면 됩니다.
모델 선택 작동 방식 (How Model Selection Works)
- 모델 이름으로
vscode-lm-proxy를 지정하는 경우, 확장 프로그램 설정에서 선택된 모델이 사용됩니다.
- 모델 이름을 직접 지정하는 경우(예:
gpt-4.1 또는 claude-3.5-sonnet), 해당 모델이 요청에 사용됩니다.
API 레퍼런스 (API Reference)
프록시 서버는 다음 엔드포인트를 노출합니다:
OpenAI 호환 API (OpenAI Compatible API)
- Chat Completions:
POST /openai/v1/chat/completions (스트리밍은 stream 매개변수를 통해 지원)
curl -X POST http://localhost:4000/openai/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{...}
- List Models:
GET /openai/v1/models
curl http://localhost:4000/openai/v1/models
- Retrieve Model:
GET /openai/v1/models/{model}
curl http://localhost:4000/openai/v1/models/gpt-4.1
Anthropic 호환 API
- Messages:
POST /anthropic/v1/messages (스트리밍은 stream 매개변수를 통해 지원)
curl -X POST http://localhost:4000/anthropic/v1/messages \
-H 'Content-Type: application/json' \
-d '{...}
- Count Tokens:
POST /anthropic/v1/messages/count_tokens (메시지 내 토큰 수를 계산)
curl -X POST http://localhost:4000/anthropic/v1/messages/count_tokens \
-H 'Content-Type: application/json' \
-d '{...}
- List Models:
GET /anthropic/v1/models
- Retrieve Model:
GET /anthropic/v1/models/{model}
Claude Code 호환 API
- Messages:
POST /anthropic/claude/v1/messages (스트리밍은 stream 매개변수를 통해 지원)
curl -X POST http://localhost:4000/anthropic/claude/v1/messages \
-H 'Content-Type: application/json' \
-d '{...}
- Count Tokens:
POST /anthropic/claude/v1/messages/count_tokens
- List Models:
GET /anthropic/claude/v1/models
- Retrieve Model:
GET /anthropic/claude/v1/models/{model}
요청 및 응답 형식에 대한 자세한 정보는 공식 OpenAI API 문서와 Anthropic API 문서를 참조하십시오.
설정 (Configuration)
VSCode 설정 UI 또는 settings.json 파일을 편집하여 확장 프로그램 설정을 구성할 수 있습니다.
vscode-lm-proxy.port: 프록시 서버의 포트 번호입니다. (기본값: 4000)
vscode-lm-proxy.logLevel: 확장 프로그램의 로그 레벨입니다. (기본값: INFO용 1)
vscode-lm-proxy.showOutputOnStartup: 시작 시 출력 패널을 표시할지 여부입니다. (기본값: false)
명령어(Commands)
다음 명령어들은 명령 팔레트에서 사용할 수 있습니다:
LM Proxy: Start LM Proxy Server: 프록시 서버를 시작합니다.
LM Proxy: Stop LM Proxy Server: 프록시 서버를 중지합니다.
LM Proxy: Select OpenAI API Model: 사용할 OpenAI 모델을 선택합니다.
LM Proxy: Select Anthropic API Model: 사용할 Anthropic 모델을 선택합니다.
LM Proxy: Select Claude Code Background Model: 사용할 Claude Code 백그라운드 모델을 선택합니다.
LM Proxy: Select Claude Code Thinking Model: 사용할 Claude Code 사고(Thinking) 모델을 선택합니다.
LM Proxy: Show Output Panel: 확장 프로그램의 출력 패널을 표시합니다.
LM Proxy: Clear Output Panel: 확장 프로그램의 출력 패널을 지웁니다.
LM Proxy: Set Log Level: 로그 레벨을 설정합니다.
작동 방식(How It Works)
LM Proxy는 VSCode Language Model API (LM API)를 활용하여 GitHub Copilot의 언어 모델과 통신합니다. 이 확장 프로그램은 외부 애플리케이션과 VSCode 내장 언어 모델 기능 간의 다리 역할을 합니다:
- 확장 프로그램이 OpenAI 및 Anthropic 호환 API 엔드포인트를 구현하는 로컬 프록시 서버를 시작합니다.
- 요청을 받으면, 해당 요청을 VSCode Language Model API에 적합한 형식으로 변환합니다.
- GitHub Copilot으로부터의 응답(LM API 경유)은 예상되는 OpenAI 또는 Anthropic 형식으로 다시 변환됩니다.
- 이를 통해 이러한 인기 있는 API 형식과 함께 작동하도록 설계된 기존 애플리케이션 및 도구와 원활하게 통합할 수 있습니다.
이 접근 방식은 사용자에게 커스텀 통합을 구현할 필요 없이 GitHub Copilot의 전체 기능을 애플리케이션에서 활용할 수 있게 합니다.
라이선스(License)
본 확장 프로그램은 MIT License에 따라 라이선스가 부여됩니다.