<h1 align="center">GitHub Copilot Chat용 OmniRoute</h1>
<p align="center">
<img src="https://raw.githubusercontent.com/diegosouzapw/OmniCopilot/HEAD/assets/icon.png" alt="OmniCopilot" width="128">
</p>
<p align="center">
<strong>1200개 이상의 AI 모델을 Copilot Chat에 — 무료로 영원히 사용하세요.</strong><br>
<em>340개 이상의 제공업체, 90개 이상은 무료 티어를 제공하며, 단일 엔드포인트에서 이용 가능합니다. MIT 오픈 소스입니다.</em>
</p>
<p align="center">
<a href="https://marketplace.visualstudio.com/items?itemName=diegosouzapw.omnicopilot"><strong>🧩 VS Code Marketplace에서 설치하기</strong></a><br>
<a href="https://open-vsx.org/extension/diegosouzapw/omnicopilot"><strong>🔓 Open VSX에서 설치하기</strong></a> <em>(Cursor, Windsurf, VSCodium, Theia, code-server…)<br>
</p>
<p align="center">
<a href="https://github.com/diegosouzapw/OmniRoute">🌐 GitHub의 OmniRoute</a> •
<a href="https://github.com/diegosouzapw/OmniCopilot">🔌 확장 프로그램 소스</a> •
<a href="https://github.com/diegosouzapw/OmniRoute/issues">🐛 이슈</a>
</p>
Copilot을 대체하지 마세요 — 강력하게 만드세요. 학습할 새로운 사이드바나 채팅 UI가 없습니다. 이 확장 프로그램은 사용하고 있는 Copilot Chat의 모델 선택기(model picker)에 OmniRoute 서버의 모든 모델들 — Kimi, Claude, GPT, Gemini, GLM, DeepSeek, Qwen, Llama 등 340개 이상의 제공업체, 그중 90개 이상은 무료 티어를 유지하는 모델들을 바로 추가합니다. VS Code Insiders도 포함됩니다.
🆓 Copilot 구독이 필요하지 않습니다. VS Code 1.122 버전부터는 GitHub 로그인이나 Copilot 플랜 없이 제공업체 모델을 사용할 수 있습니다. VS Code + OmniRoute + 이 확장 프로그램 = 에이전트 모드를 갖춘 완벽하게 작동하는 AI 채팅, 무료로 이용 가능합니다.
왜 이 확장 프로그램인가요?
- 1200개 이상의 모델을 하나의 선택기로. OmniRoute는 340개 이상의 제공업체(OpenAI 호환, Anthropic, Gemini, Ollama, 로컬, OAuth 기반 무료 티어 등)를 단일 엔드포인트 뒤에 통합합니다. — 90개 이상의 제공업체가 있으며 영구적으로 무료입니다. 이 서비스되는 모든 모델은 Copilot Chat의 모델 드롭다운 메뉴에 표시됩니다.
- Agent 모드, 도구 호출(tool calling), MCP, 명령어 등 — 모두 작동합니다. 이는 VS Code의 네이티브 언어 모델 제공업체 API에 연결되므로, Copilot의 전체 스택이 이제 사용자가 선택한 모델에서 실행됩니다.
- Vision 기능 포함. OmniRoute 카탈로그에서 비전 기능을 갖춘(vision-capable) 모델은 채팅에서 이미지 첨부 파일을 직접 수락합니다.
- 콤보 및 자동 폴백(auto-fallback). OmniRoute 콤보는 (우선순위, 라운드 로빈, 비용 최적화, 융합 등) 일반 모델처럼 표시되며 — 하나를 선택하면 백그라운드에서 제공업체 간의 자동 장애 조치가 이루어집니다.
- 한눈에 온라인 상태 확인. 상태 표시줄 점과 활동(Activity) 표시줄 패널을 통해 OmniRoute 서버가 연결 가능한지, 몇 개의 모델을 서비스하는지, 그리고 모든 것을 구성할 수 있는 곳 — URL 및 API 키 포함 — 을 보여줍니다.
- 사용자의 언어를 지원합니다. UI는 42개 언어로 제공되며, 이는 OmniRoute 자체 카탈로그를 반영합니다. VS Code가 사용자의 표시 언어와 일치하는 것을 자동으로 선택합니다.
- 다른 도구들도 구성할 수 있습니다. 하나의 명령으로 Codex CLI, Claude Code, Cline, Continue, Cursor, Aider 등 여러 도구가 OmniRoute를 사용하도록 설정하며 — 내부적으로는
omniroute CLI가 구동됩니다.
- 기본적으로 안전합니다(Secure by default). API 키는
settings.json에 절대 저장되지 않고 VS Code의 SecretStorage(OS 키체인)에 보관됩니다.
시작하기 (Getting started)
1. OmniRoute 실행하기 (60초)
npm install -g omniroute
omniroute
대시보드에 제공업체/키를 추가하거나 — 내장된 무료 기능을 사용하세요. 전체 가이드: github.com/diegosouzapw/OmniRoute.
이미 다른 곳(홈 서버, VPS, 터널 등)에서 OmniRoute를 실행하고 있나요? 확장 프로그램이 그곳을 가리키도록 설정하세요 — 아래 참조.
2. 이 확장 프로그램 설치하기
VS Code Extensions 뷰에서 **"OmniRoute"**를 검색하세요. 이 기능은 VS Code의 Marketplace와 Cursor, Windsurf 및 VSCodium 같은 포크(forks)에서의 Open VSX 모두에서 해결할 수 있습니다. 또는 releases에서 .vsix 파일을 다운로드하세요.
3. 모델 선택 (Pick a model)
- Copilot Chat을 열고 **모델 선택기(model picker)**를 클릭합니다.
- 모델 관리(Manage Models)… → OmniRoute를 선택합니다.
- 원하는 모델에 체크하면, 해당 모델들이 선택기에 추가됩니다.
이것으로 끝입니다. 만약 OmniRoute가 기본값인 http://localhost:20128에서 실행된다면, 설정할 것이 없습니다.
원격 서버 / API 키 (Remote server / API key)
**활동 표시줄(Activity Bar)**의 OmniRoute 아이콘을 클릭하거나 (OmniRoute: Manage Connection을 실행하거나 상태 표시줄 점을 클릭) 연결 패널을 열어주세요:
- 서버 URL(Server URL) — 예:
http://my-vps:20128 (/v1 접미사는 자동으로 추가됩니다)
- API 키(API key) — OmniRoute가 필요로 하는 경우에만 해당합니다 (
REQUIRE_API_KEY); OS 키체인에 저장됩니다.
- 저장 및 테스트(Save & Test) — 실시간 모델 개수와 함께 즉각적인 피드백을 받습니다.
**OmniRoute: Configure Coding CLI**를 실행하고 도구를 선택하세요. 확장 프로그램이 omniroute CLI를 구동하여 바로 사용할 수 있는 프로필을 생성합니다:
| 도구 | 얻게 되는 것 |
|---|
| Codex CLI | codex --profile glm52 스타일의 ~/.codex 내 프로필 |
| ... | |
설정 (Settings)
| 설정 | 기본값 | 설명 |
|---|
omnicopilot.baseUrl | http://localhost:20128 | OmniRoute 서버 루트(로컬 또는 원격) — /v1이 자동으로 추가됩니다 |
| ... | | |
추론 노력 (Reasoning effort)
확장된 사고 능력을 가진 모델(GPT-5.x, Thinking 기능이 있는 Claude, DeepSeek R1, Gemini Thinking 등)은 추론 계층을 수용합니다. VS Code가 모델 옆에 노력 제어(effort control)를 표시하면, 해당 선택지가 reasoning_effort로 OmniRoute에 전달됩니다 — 별도로 설정할 필요가 없습니다.
omnicopilot.defaultReasoningEffort는 편집기에서 제어 기능을 노출하지 않는 경우를 처리합니다. 이 설정은 OmniRoute의 표준 어휘인 none, low, medium, high, xhigh를 사용하며, 서버는 모델이 구현하지 않는 등급으로 다운그레이드하므로 xhigh를 요청하는 것은 항상 안전합니다.
기본값은 카탈로그에서 추론(reasoning) 능력을 갖춘 것으로 표시된 모델에 만 적용됩니다. 생각 지원 기능이 없는 모델로 이 필드를 보내는 것은 최악의 경우 400 에러와 함께 거부될 뿐입니다. 채팅 UI에서의 명시적인 선택은 항상 설정값보다 우선합니다.
Agents 창 (실험적)
omnicopilot.exposeToAgentsWindow를 활성화하면 모든 도구 호출(tool-calling) OmniRoute 모델이 Copilot Agents 창 (Copilot CLI 에이전트 호스트)에도 등록됩니다. VS Code는 이러한 항목들을 에이전트-호스트 세션에 범위 지정하므로, 일반 채팅 선택기 대신 Agents 창의 모델 선택기에 표시됩니다. 일반 선택기는 변경 없이 작동합니다.
사전 요구 사항 (VS Code 측):
- 실험적 VS Code 설정
chat.agentHost.byokModels.enabled를 활성화합니다.
- 설정을 전환한 후 에이전트 호스트를 재시작하거나 창을 새로 고칩니다.
이는 제안된 VS Code API (targetChatSessionType)를 사용하기 때문에 옵트인(opt-in) 방식이며 기본적으로 비활성화되어 있습니다. 이 메커니즘은 VS Code 업데이트 시 우리에 의해 변경될 수 있기 때문입니다. 만약 항목들이 Agents 창 대신 일반 선택기에 중복으로 나타난다면, 사용자의 VS Code 빌드가 아직 해당 제안을 지원하지 않는 것입니다. 설정을 다시 끄십시오.
패널에서의 사용법
OmniRoute가 충분히 최신 버전을 실행하면, 활동(Activity) 표시줄의 패널에 내 사용량 (My usage) 섹션이 나타납니다. 여기에는 사용자 키의 일일/주간 한도 대비 소비량, 초기화 시간, 그리고 각 제공업체 연결(Codex, Claude, OpenCode 등)별 할당량이 나란히 표시됩니다.
이는 사용자의 연결 API 키를 사용하여 셀프서비스 엔드포인트 GET /api/usage/om-usage?format=json에서 데이터를 읽어옵니다. 이는 터미널의 @@om-usage 명령어와 동일한 데이터이며, 관리 인터페이스의 데이터가 아닙니다.
정상적이고 구별되는 세 가지 상태가 있습니다:
- "Usage is not enabled for this key" — 해당 키는
allowUsageCommand 플래그가 없어 사용이 불가능합니다. 이 플래그는 기본적으로 비활성화되어 있습니다. 관리자가 OmniRoute의 API-key 매니저에서 키별로 이를 켜야 합니다. 이는 오류가 아니라 설정 문제입니다.
- "nothing is cached yet" — 해당 키는 사용은 가능하지만, 서버가 아직 연결에 대한 학습된 할당량(quota)을 가지고 있지 않다는 의미입니다. 첫 번째 요청 이후에 채워집니다.
- 아무 섹션도 없음 (No section at all) — OmniRoute 서버는
?format=json보다 오래되었기 때문에, 패널이 구형 텍스트 형식으로 파싱하는 대신 이를 숨깁니다.
OmniRoute가 사용량 JSON 엔드포인트(v3.8.50 이상)를 갖추고 있어야 합니다. 기능 매트릭스가 가정하는 서버 버전을 보려면 docs/CATALOG.md를 참조하세요.
VS Code 내부 대시보드 (Dashboard inside VS Code)
omnicopilot.dashboardOpen을 editor로 설정하면 브라우저 대신 VS Code 탭에서 OmniRoute 대시보드가 열립니다. 이를 위해서는 서버가 임베딩(embedding)을 허용해야 하며, 이는 **DASHBOARD_ALLOW_EMBED=vscode**를 통해 선택적으로 활성화할 수 있습니다 (OmniRoute #10273에서 구현됨).
⚠️ 해당 플래그는 **빌드 시점(build time)**에 읽힙니다. Next.js는 응답 헤더를 라우트 매니페스트에 내장하기 때문에, 이미 설치된 서버 앞에서 이를 내보내는 것은 아무 효과가 없습니다. 이는 소스에서 빌드(DASHBOARD_ALLOW_EMBED=vscode npm run build)할 때 작동하며, npm install -g omniroute로 미리 빌드된 패키지나 공식 Docker 이미지에서는 작동하지 않습니다. 전체 매트릭스는 OmniRoute 가이드를 참조하세요.
임베딩이 활성화되지 않은 빌드에서는 페이지가 프레임을 거부합니다. 확장 프로그램은 응답 헤더에서 이를 감지하고 외부 브라우저로 폴백(fallback)하므로 어느 쪽도 문제가 없습니다.
모델 목록 생성 방법 (How the model list is built)
왜 선택기(picker)에 표시되는 모델 수가 적거나, 한 번도 설정한 적 없는 제공업체(provider)가 포함되어 있는지 궁금하신가요? → **docs/CATALOG.md**에서 중복 접두사 모드(duplicate-prefix mode), 비채팅 필터(non-chat filter), 그리고 무료/키리스 제공업체에 대한 측정된 수치와 함께 설명합니다.
알아두면 좋은 정보 (Good to know)
- Chat, agent mode 및 유틸리티 작업은 OmniRoute 모델을 통해 실행됩니다. 인라인 코드 완성(inline code completions)과 임베딩 기반 기능은 VS Code의 제공업체 API 외부이므로 여전히 GitHub Copilot이 필요합니다.
- Copilot Business/Enterprise에서는 관리자가 'Bring Your Own Language Model Key' 정책을 통해 타사 모델 제공업체를 비활성화할 수 있습니다.
- VS Code 1.104 이상이 필요합니다 (1.122보다 오래된 버전도 Copilot 플랜에 로그인해야 합니다 — 이는 저희의 규칙이 아닌 VS Code의 규칙입니다).
무료 및 오픈 소스
OmniRoute는 MIT 라이선스를 따르며 영구적으로 무료입니다 — ⭐ GitHub에서 별표를 누르고 프로젝트에 참여하세요. 이 확장은 또한 MIT 라이선스이며, 이슈 및 PR은 diegosouzapw/OmniCopilot에서 환영합니다. 새로운 버전을 게시하는 유지 관리자: docs/PUBLISHING.md를 참조하세요 (Marketplace + Open VSX).
OmniRoute는 GitHub나 Microsoft와 관련 없는 독립적인 오픈 소스 프로젝트입니다. GitHub Copilot은 GitHub, Inc.의 상표입니다.