> **자체 제공업체 계정을 사용하세요.** 이는 개별적으로 자격 요건을 충족하는 타사 무료 티어를 합산한 추정치이며, OmniRoute가 제공하는 토큰이 아닙니다. 가입하고, 필요한 경우 자격 증명을 발급받은 후, 사용할 수 있는 제공업체를 연결하세요. 각 제공업체가 한도, 가용성 및 이용 약관을 관리합니다.
>
> 무료 티어를 수동으로 조합하는 일은 고통스럽습니다. 수십 개의 SDK, 수십 가지 사용량 제한, 그리고 실제로 얼마나 사용할 수 있는지 알 방법도 없습니다. OmniRoute는 **반복 제공 풀 키 35개에 걸쳐 489개의 무료 티어 항목**을 분류하며, **공개된 월간 예산이 양수인 풀 17개와 모델별 Groq 한도 5개**를 기반으로 토큰 수치를 계산하고 공유 풀별로 중복을 제거합니다. 지역 신원 확인을 완료해야만 이용할 수 있는 할당량(현재: ModelScope)은 별도로 표시되며, 지역 신원 확인 후 제공되는 +~6M은 주요 수치에 절대 합산되지 않습니다. 결과는 대시보드(`/dashboard/free-tiers`)에서 계속 확인할 수 있습니다.
> 실시간 `/dashboard/free-tiers` 페이지의 애니메이션 요약입니다. 전체 방법론(풀 중복 제거, 크레딧 티어, 제공업체 이용 약관): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> 이 수치는 실시간 카탈로그를 기준으로 2주마다 재감사되며 **양방향으로 변동**합니다. 제공업체가 무료 티어를 종료하면 수치가 내려가고, 새로운 무료 티어가 추가되면 올라갑니다. 반올림해 부풀린 최상의 사례가 아니라, 카탈로그에서 실제로 계산된 값을 공개합니다.
⭐ OMNIROUTE가 비용을 절약하고 작업을 더 쉽게 하는 데 도움이 되었다면 저장소에 Star를 눌러 주세요.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 커뮤니티에 참여하세요
**👋 관리자를 팔로우하고 새로운 제공업체, 릴리스 및 팁을 가장 먼저 받아보세요:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**질문, 제공업체 팁, 로드맵 및 지원 → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 글로벌](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 브라질](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [포털](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 계속 성장하는 Gateway
```bash
# 공급자를 연결한 후 Dashboard → Endpoints에서 OmniRoute 키를 복사하세요:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto`를 사용하려면 적격 경로가 필요합니다. 새로 설치한 환경에는 적격 키리스 대상이 없을 수 있으며, 키리스 공급자가 서드파티 클라이언트를 거부할 수도 있습니다. OpenCode Free와 Kiro를 포함하여 `tos: avoid`로 표시된 공급자는 기본적으로 자동 라우팅에서 제외되며, 계정을 연결해도 이 설정은 재정의되지 않습니다. 공급자를 선택하기 전에 [무료 티어 가이드](docs/getting-started/FREE-TIERS-GUIDE.md)를 참조하세요.📦 **Python, Node.js, PHP 및 cURL**용 복사하여 바로 사용할 수 있는 빠른 시작 스크립트 → [`examples/quickstart/`](examples/quickstart/)
# 💥 약속
# 🤔 왜 OmniRoute인가요?
## 🤝 오픈 소스 친구들의 지원
> **오픈 소스 친구로 참여하고 싶으신가요?** 이들은 오픈 소스를 지지하고 OmniRoute가 계속 움직일 수 있도록 돕는 회사들입니다. 저희는 그들이 제공하는 모든 토큰이 어디에 사용되는지 공개적으로 밝힙니다. 연락처: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
이 프로젝트를 지원해 주신 창립 오픈 소스 친구인 Kimi (Moonshot AI)에게 감사드립니다! Kimi는 오픈 가중치 K2 및 K3 모델 제품군을 개발한 AI 연구소입니다. Kimi K3는 1M 토큰 컨텍스트 창, 네이티브 비전, 최첨단 코딩 기능을 폐쇄형 모델 가격의 일부로 제공하며, Claude Code, Codex 및 OmniRoute가 제공하는 모든 코딩 도구와 즉시 작동합니다.
Kimi의 지원이 제공하는 것: Kimi의 API 크레딧은 OmniRoute의 AI 검증 릴리스 파이프라인(모든 풀 리퀘스트가 배포되기 전에 검토하는 Kimi K3 기반 병합 검증 단계)과 일상적인 기능 개발을 지원합니다. 최고 수준의 Kimi 지원은 두 가지 방식으로 제공됩니다: 직접적인 Kimi API (kimi-k3)와 Kimi Code 코딩 플랜 (OAuth 및 API 키). OmniRoute는 또한 Kimi의 지원 프로그램에 참여하는 최초의 브라질 오픈 소스 프로젝트입니다. 15% 추가 크레딧이 포함된 Kimi API 키 받기 →
Cheaper Inference cheaperinference.com
이 프로젝트를 지원해 주신 OmniRoute 오픈 소스 친구인 Cheaper Inference에게 감사드립니다! Cheaper Inference는 비용 순위가 매겨진 게이트웨이로, Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok 및 MiniMax 등 42개의 최첨단 모델을 하나의 OpenAI 호환 엔드포인트 뒤에서 재판매하며, 모델 제작사의 정가 이상으로 청구하지 않고 각 요청을 가장 저렴한 적격 공급자에게 라우팅합니다.
OmniRoute의 최고 수준 지원: Chat Completions, 네이티브 /v1/responses 엔드포인트, 비전, 도구 호출 및 3개의 이미지 모델 (grok-imagine, nano-banana-pro, nano-banana-2, cheaperinference/<model>로 접근 가능). API 키 받기 →
aff=omniroute 태그가 붙은 링크는 파트너 링크입니다. 이 링크들은 사용자에게 추가 비용 없이 프로젝트에 자금을 지원합니다. 🎟️ 제휴 프로모션 — 저희가 후원하지 않는 공급업체의 무료 가입 쿠폰 (클릭하여 확장)이 섹션은 추천/쿠폰 코드 전용입니다. 후원 파트너십은 위에 있는 🤝 오픈 소스 친구들의 지원 섹션에 있습니다. OmniRoute는 여기에 나열된 공급업체와 후원 또는 파트너십 관계가 없으며, 이들은 누구나 사용할 수 있는 공개 쿠폰입니다.
AgentRouter agentrouter.org
AgentRouter — 제휴 가입 · 가입 시 $100 무료 크레딧 (무료 서버, 더 높은 지연 시간 예상 — 테스트용으로 최적, 프로덕션용 아님). v3.8.50부터 OmniRoute에서 최고 수준 지원: Chat Completions, Anthropic 호환 와이어 형식 및 OpenAI 호환 경로. 사용 가능한 모델에는 claude-opus-4-8, claude-opus-5, gpt-5.6-sol 등이 포함됩니다. $100 받기 →
⚠️ 제휴 링크 — OmniRoute는 이 공급업체와 후원 또는 파트너십 관계가 없습니다.
OmniRoute 사용자에게 도움이 되는 관대한 무료 가입 쿠폰을 제공하는 다른 공급업체를 알고 계신가요? 이슈를 열어주시면 여기에 추가하겠습니다.
## 🎯 콤보 — 핵심 기능
> **콤보**는 OmniRoute가 **자동으로** 라우팅하는 모델 체인입니다. 할당량이 소진되거나, 공급자에 장애가 발생하거나, 비용이 급증하면 콤보는 다음으로 적합하고 정상적인 모델로 전환할 수 있습니다. 🛡️
### ⚡ 설정 불필요 — `auto`만 사용하세요
콤보를 생성할 필요가 없습니다. 모델을 `auto`(또는 변형 중 하나)로 설정하면 OmniRoute가 연결된 공급자로 가상 콤보를 구성하고 실시간으로 점수를 매깁니다.
모델 ID
최적화 대상
auto
🎯 균형 잡힌 기본값(LKGP — 마지막으로 정상 작동한 공급자를 계속 사용)
auto/coding
🧑💻 코드 생성 시 품질을 우선하는 가중치
auto/fast
⚡ 지연 시간이 가장 짧은 대상 우선
auto/cheap
💰 토큰당 비용이 가장 저렴한 대상 우선
auto/offline
🔋 할당량/속도 제한의 여유가 가장 큰 대상 우선
auto/smart
🔭 품질 우선 + 더 나은 모델을 탐색하기 위한 10% 탐색
auto/lkgp
📌 마지막으로 정상 작동한 공급자를 명시적으로 계속 사용
auto/chaos
🧪 모델 패널로 병렬 팬아웃(공급자당 하나, 기본값 5개)하여 하나의 답변을 반환합니다. 패널 모델당 하나의 업스트림 호출을 사용하며, 장애 주입이 아닙니다.
##
### 🔀 또는 직접 구성하세요 — 19가지 라우팅 전략
**19가지** 전략을 모두 콤보 단계별로 자유롭게 조합할 수 있습니다.
#
전략
기능
1
priority
첫 번째 대상을 우선하는 순서 목록 — 각 대상을 모두 소진한 후 다음 대상으로 이동 🥇
2
fill-first
다음 대상으로 이동하기 전에 각 대상의 할당량을 완전히 소진
3
weighted
대상별 가중치에 따른 가중 무작위 선택
4
round-robin
대상을 순서대로 순환
5
p2c
두 가지 선택의 힘을 이용한 무작위 부하 분산
6
least-used
현재 부하가 가장 낮은 대상 선택
7
random
균등 무작위 선택(중복 제거)
8
strict-random
반복 항목을 중복 제거하지 않고 무작위 선택 🎲
9
cost-optimized
실시간 카탈로그 가격을 기준으로 요청당 비용 최소화 💸
10
headroom
남은 할당량이 가장 많은 대상 선택
11
reset-window
할당량 기간이 가장 빨리 초기화되는 대상 우선
12
reset-aware
할당량 초기화 시간을 기준으로 순위 지정 — 짧은 기간 우선 📊
13
context-relay
긴 대화를 위해 대상 간 컨텍스트 전달 🧠
14
context-optimized
현재 컨텍스트 크기에 가장 적합한 대상 선택
15
cache-optimized
재사용 가능한 각 프롬프트 접두사를 동일한 계정에 고정하여 프롬프트 캐시 적중률 극대화 🎯
16
lkgp
마지막 정상 경로(Last-Known-Good Path) — 마지막으로 성공한 공급자에 고정한 후 규칙에 따라 대체 경로 사용
17
auto
모든 연결을 대상으로 한 16개 요소의 실시간 점수 산정 🤖
18
fusion
모델 패널로 팬아웃한 후 판정 모델이 하나의 답변으로 종합 🧬
19
pipeline
단계 연결 — 각 대상의 출력이 다음 대상의 입력으로 전달됨 🔗
Auto-Combo 엔진은 모든 후보를 **16가지 요소**(상태, 할당량, 비용, 지연 시간, 작업 적합성, 품질, 세션 가용성 등)에 따라 평가합니다. 자세한 내용은 [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md)를 참조하세요.
##
### 🧱 복원력이 기본으로 내장되어 있습니다(서로 독립적인 3개 계층)
📖 [자동 콤보 엔진](docs/routing/AUTO-COMBO.md) · [복원력 가이드](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 OmniRoute만의 차별점
📊 9router, OpenRouter, CLIProxyAPI 및 LiteLLM과 비교한 전체 방법론 및 기능별 세부 정보 → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 OmniRoute 후원하기
OmniRoute는 MIT 라이선스로 공개적으로 유지·관리됩니다. 시간이나 비용을 절약하는 데 도움이 되었다면, 독립성을 유지할 수 있도록 자신에게 맞는 방법으로 후원해 주세요. 후원은 라우팅 우선순위에 절대 영향을 주지 않습니다. 후원으로 얻는 것은 노출이지 순위가 아닙니다.
**🇧🇷 PIX** — 즉시 송금, 수수료 없음 (브라질)
키 (무작위): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix 복사 및 붙여넣기:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ 암호화폐 — BTC · ETH · USDT-TRC20 · USDC-Solana (클릭하여 펼치기)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ 각 코인은 표시된 네트워크에서만 전송하세요. 잘못된 네트워크로 전송하면 자금을 잃을 수 있습니다.
🐛 버그를 발견했거나 의견이 있으신가요? [토론](https://github.com/diegosouzapw/OmniRoute/discussions)을 시작해 주세요.
개발자 참고 사항: 이 프로젝트는 개발 편의를 위해 npm 설치 또는 설치 후 과정에서 로컬 .env 파일을 생성할 수 있습니다. 이 파일은 의도적으로 .gitignore를 통해 무시되며(.gitignore 참조), 절대로 커밋해서는 안 됩니다. 실수로 커밋한 경우 노출된 모든 비밀 정보를 교체하고 기록에서 해당 파일을 제거하세요. 로컬 환경 파일 및 비밀 정보 관리 지침은 docs/DEVELOPER-ENVIRONMENT.md를 참조하세요.
## 📡 OmniRoute Radar
문서에 명시된 위의 풀 중복 제거 카탈로그를 기준으로, 무료 티어의 주요 수치는 여전히 **월 ~1.62B 토큰**입니다. 임시 제공업체 가입 크레딧을 활용하면 첫 달에는 별도로 **~2.22B**까지 늘어날 수 있습니다. Radar는 OmniRoute 릴리스 사이에도 최신 무료 모델 가용성 정보를 원하는 사용자를 위한 선택적 서명 카탈로그 오버레이입니다. 커뮤니티 카탈로그와 기존의 모든 무료 기능은 계속 무료로 제공됩니다.
후원자는 실시간 카탈로그와 추가 제공업체 이용 기회를 받을 수 있습니다. 별도로 운영되며 변경 가능한 최대 한도는 제공업체의 가용성에 따라 **월 최대 약 3B 토큰**입니다. 이 최대 한도는 보장되지 않습니다. 제공업체는 언제든 할당량, 자격 요건, 모델 또는 지역을 변경할 수 있습니다.
Radar는 선택적으로 사용할 수 있으며 GET 전용입니다. OmniRoute 클라이언트는 프롬프트, 트래픽, 제공업체 구성, 사용량 텔레메트리 또는 로컬 공지 숨김 상태를 업로드하지 않습니다. 자격 요건과 현재 카탈로그에 대한 자세한 내용은 **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**에서 확인하세요.
## ✨ 새로운 기능
> **v3.8.20 → v3.8.50**의 주요 변경 사항입니다. 전체 변경 이력은 [`CHANGELOG.md`](CHANGELOG.md)에서 확인하세요.
- **🎛️ OmniConductor** — 에이전트 플릿으로의 인바운드 A2A 위임, Agent Card의 Conductor 스킬, Faro 푸시투토크 음성 채팅을 지원하는 대시보드 패널. → [A2A 서버](docs/frameworks/A2A-SERVER.md)
- **🛂 적응형 요청 수용 및 과부하 보호** — 처리량이 큰 채팅 요청에 503을 반환하는 대신 대기열에 넣고, 연결별 원자적 RPM 롤링 리스를 적용합니다. → [복원력 가이드](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ 표준 `/v1/models` 정렬** — 공급자별로 하나의 연속된 블록으로 그룹화되며(콤보는 맨 앞에 고정), 모든 카탈로그 소스에서 안정적인 순서를 유지합니다. → [API 레퍼런스](docs/reference/API_REFERENCE.md)
- **🗜️ 압축 강화** — 기본 활성화된 인플레이션 가드, DE / FR / JA 및 중국어(wényán)용 Caveman 팩, Gradle 및 .NET용 RTK 필터. → [압축](docs/compression/COMPRESSION_ENGINES.md)
- **💸 정확한 정액제 비용** — 구독/코딩 플랜 공급자는 비용 분석에서 **$0**으로 표시되며, 예산, 할당량 및 라우팅에는 계속 추정값이 사용됩니다. → [API 레퍼런스](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share 라우팅** — 공유 계정의 할당량을 풀링된 키에 공정하게 분배하며, 유휴 할당분을 빌려주는 작업 보존 방식을 적용합니다. → [복원력 가이드](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 단일 명령 CLI/에이전트 설정** — 등록된 `setup-*` 명령 13개, 7개 CLI(Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI)를 실행하는 `omniroute run`, 대화형 공급자+모델 선택기와 컨텍스트별 즐겨찾기를 통해 10개 대상을 지원하는 `omniroute configure`. → [CLI 통합](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ 원격 모드** — 범위가 지정된 토큰(`connect` / `contexts` / `tokens`)과 VPS 설치용 `antigravity` OAuth 도우미를 사용해 원격 OmniRoute를 제어합니다. → [원격 모드](docs/guides/REMOTE-MODE.md)
- **🧭 더 스마트한 자동 라우팅** — `auto/:` 콤보, **Fusion**(모델 패널 + 판정 모델), 작업 인식 라우팅, 요청별 모델/모드/USD 예산 재정의. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ 플러그형 압축** — 조합 가능한 엔진 12개와 Compression Studios: LLMLingua-2, 2단계 Ultra, omniglyph, 단계별 충실도 게이트, GCF v3.2, 드래그 재정렬 편집기. → [압축](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ 투명한 MITM 복호화(TPROXY)** — 프록시 환경 변수를 무시하는 CLI를 캡처하며, SNI별 CA와 신뢰 저장소 설치 프로그램을 제공합니다. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 전 영역 비용 텔레메트리** — 모든 엔드포인트에 `X-OmniRoute-*` 비용/사용량 헤더, 캐시 HIT 절감액 헤더, 키별 USD 지출 할당량을 제공합니다. → [API 레퍼런스](docs/reference/API_REFERENCE.md)
- **🧠 직접 제어하는 메모리** — 기본적으로 비활성화되며, 선택적으로 int8 벡터 양자화와 유형별 감쇠를 사용할 수 있고 요청별 `x-omniroute-no-memory`를 지원합니다. → [메모리](docs/frameworks/MEMORY.md)
- **🛡️ 보안** — 모든 LLM 경로의 프롬프트 인젝션 가드(레드팀 제품군), 선택적으로 활성화하는 자격 증명 마스킹 가드레일(양방향으로 유출된 API 키/시크릿을 삭제 처리), 무료 DuckDuckGo 최후 수단 웹 검색, 대시보드용 선택적 OIDC 로그인 게이트(비밀번호 로그인은 항상 사용 가능). → [가드레일](docs/security/GUARDRAILS.md)
- **🖼️ 새로운 엔드포인트** — `/v1/ocr`(Mistral OCR) 및 `/v1/audio/translations`(Whisper 스타일)가 미디어 기능을 완성합니다. → [API 레퍼런스](docs/reference/API_REFERENCE.md)
- **🎨 이미지/동영상/오디오 생성** — 미디어를 위한 단일 API: xAI Grok Imagine 및 Novita AI 동영상, ComfyUI, Magnific, Adobe Firefly, Segmind, ElevenLabs와 같은 음성 공급자. → [API 레퍼런스](docs/reference/API_REFERENCE.md)
- **🌍 배포 및 운영** — 리버스 프록시 `basePath`, 브라우저 언어 자동 감지, 키별 기기 추적, 루트 권한 없는 MITM 신뢰 설정, zh-TW 현지화. → [환경](docs/reference/ENVIRONMENT.md)
- **🤝 더 많은 공급자 및 에이전트** — 클라우드 에이전트(Codex Cloud, Cursor, Devin, Jules), 브라우저 + OAuth 로그인을 지원하는 Grok Build(xAI), 일급 Ollama 카드, Claude Opus 5 및 Sonnet 5, Kimi 공식 파트너십(Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… 그리고 새롭게 개편된 **352개 공급자 카탈로그**. → [공급자](docs/reference/PROVIDER_REFERENCE.md)
- **📡 투명한 라우팅** — 모든 응답에는 요청을 처리한 전략/공급자/지연 시간을 나타내는 `X-OmniRoute-Decision` 헤더가 포함됩니다. 새로운 `cache-optimized` 콤보 전략과 Auto-Combo `cacheAffinity` 요소는 반복 요청을 캐시된 접두사를 보유한 연결로 다시 라우팅하며, 읽기 전용 `/v1/auto-combo/{channel}/candidates` 엔드포인트는 `auto/*` 채널의 실시간 후보 풀을 노출합니다. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ 로컬 성능 및 인프라** — 원클릭 로컬 Redis, Cloudflare Workers / Deno Deploy 릴레이 배포 도구, 감독형 임베디드 서비스로 제공되는 Bifrost 및 Mux. → [임베디드 서비스](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 함께 제공되는 기타 기능** — 플러그인 프레임워크 + 마켓플레이스, Omni/Agent/GitHub 스킬 프레임워크, Obsidian 볼트 통합(22개 MCP 도구), OpenAI 호환 Batch 및 Files API, 시맨틱 응답 캐시, 리더보드를 지원하는 게임화, ACP 에이전트 탐색(기본 제공 에이전트 15개), BigQuery로의 예약 로그 내보내기, `auto/chaos` 병렬 멀티모델 팬아웃, Telegram 봇 브리지, 앱 내 버전 관리자 및 LMArena-ELO 무료 공급자 순위. → [문서](docs/README.md)
## 🤖 호환 가능한 CLI 및 코딩 에이전트
> 하나의 설정 — `http://localhost:20128/v1` — 으로 **모든** AI IDE 또는 CLI에서 무료 및 저비용 모델을 사용할 수 있습니다.
+ 다음 도구에서도 작동합니다 · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · 모든 OpenAI 호환 도구
📖 36개 도구 전체(26개 CLI Code + 10개 CLI Agent)의 도구별 설정 → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode 플러그인 → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**단 하나의 명령으로 OmniRoute를 통해 지원되는 모든 CLI를 실행하세요** — 구성 파일을 작성하지 않으며,
자격 증명은 프로세스별로 주입되고 Qwen/Gemini에는 일회성 격리 홈이 제공됩니다.
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# 또는 provider+model을 대화형으로 선택하고 도구 자체의 구성을 작성합니다.
omniroute configure codex # 다음도 지원: claude opencode qwen aider goose gemini cline continue kilo
```
모든 명령은 활성 원격 컨텍스트(`omniroute connect `)를 따르며, `--dry-run`은
실행하지 않고 정확한 환경 변수/인수를 미리 보여줍니다. 또한 `--api-key-env NAME`을 사용하면
셸 기록에 비밀 정보가 남지 않습니다. → [CLI 통합](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372개 AI 제공업체 — 154개는 카탈로그에 무료로 표시됨
> 정식 채팅, 미디어, 검색, 로컬, 클라우드 에이전트 및 시스템 컬렉션 전반에 걸쳐 **372개의 등록된 제공업체**가 있으며, 이 중 **154개에는 `hasFree: true` 탐색 메타데이터가 포함**되어 있습니다. 채팅 모델 레지스트리는 **237개 제공업체 / 3,009개의 고유한 제공업체-모델 조합 / 1,443개의 원시 모델 ID**를 포함하며, 별도의 무료 할당량 카탈로그에는 **491개의 모델별 행**, **35개의 반복 제공 풀**, **54개의 반복 제공/키 불필요 영구 무료 제공업체**가 있습니다. 이는 의도적으로 서로 다른 분모를 사용합니다. 정의와 풀 중복 제거 계산은 [제공업체 레퍼런스](docs/reference/PROVIDER_REFERENCE.md)와 [무료 티어](docs/reference/FREE_TIERS.md)에서 확인할 수 있습니다.
### 🏢 모든 주요 연구소 — 하나의 엔드포인트로
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…그 외 330개 이상 — 모든 아이콘은 대시보드의 제공업체 카탈로그에서 실시간으로 불러옵니다. 📖 [제공업체 레퍼런스](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 영구 무료 — $0, 카드 불필요
OpenCode Zen DeepSeek V4, Nemotron 3 토큰 제한 없음
Kilo Code 자동 라우터, Tencent Hy3 영구 무료
Requesty GPT-OSS 120B, Nemotron 영구 무료
SiliconFlow DeepSeek V3.2 / R1 무료 티어
Z.AI GLM GLM-4.7 / 4.5-Flash 영구 무료
Baidu ERNIE ERNIE 4.0 영구 무료
Qoder AI Qwen3-Max, Kimi-K2 무제한 무료
Pollinations GPT, Llama, Claude 키 불필요
Cloudflare AI 50개 이상의 모델 일일 10K 뉴런
NVIDIA NIM GLM, MiniMax 약 40 RPM 무료
Cerebras GLM 4.7, GPT-OSS 일회성 $5 크레딧, 카드 필요
OpenRouter :free 모델 +$10 → 더 높은 RPM
📖 전체 기계 판독 가능 카탈로그 → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ OmniRoute 실행 환경 — 어디서나
> 같은 앱, 내 컴퓨터, 내 규칙. 전역 npm 설치부터 Termux를 통한 **휴대폰** 실행까지.
플랫폼
설치
주요 특징
📦 npm (전역)
npm install -g omniroute
명령어 하나로 모든 OS에서 실행
🐳 Docker
docker run … diegosouzapw/omniroute
멀티 아키텍처 AMD64 + ARM64
🖥️ 데스크톱 (Electron)
npm run electron:build
네이티브 창 + 시스템 트레이 — Windows / macOS / Linux
🎩 메뉴 막대 (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
서버 감독 및 자동 업데이트 — macOS
💪 ARM
네이티브 arm64
Raspberry Pi, ARM 서버, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
휴대폰에서 루트 권한 없이 24시간 연중무휴 실행
📲 PWA
"홈 화면에 추가"
전체 화면, 오프라인, 브라우저에서 설치 가능
🧩 OpenCode 플러그인
@omniroute/opencode-provider
네이티브 OpenCode 통합
🤖 VS Code Copilot Chat
OmniCopilot 확장 프로그램 설치
네이티브 Copilot Chat 선택기에 모든 OmniRoute 모델 표시 — stable 및 Insiders
### 🧩 신규: VS Code 네이티브 Copilot Chat에서 OmniRoute 사용
> 새로운 사이드바도, 새로운 채팅 UI도 필요 없습니다. OmniRoute가 제공하는 모든 모델이
> **이미 사용 중인 Copilot Chat 모델 선택기**에 바로 표시됩니다. VS Code 1.122부터는 GitHub 로그인이나
> Copilot 구독 없이도 공급자 모델을 사용할 수 있으며, 에이전트 모드, 도구 호출, 비전을 모두
> 무료로 이용할 수 있습니다.
**[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** 확장 프로그램을 설치하고 OmniRoute 서버를
가리키도록 설정한 다음(기본값: `localhost:20128`), Copilot Chat → 모델 선택기
→ **모델 관리…** → **OmniRoute**를 차례로 여세요.
편집기 내에서 **확장 프로그램** 보기를 열고 **"OmniRoute"**를 검색한 다음 **설치**를 클릭하세요.
두 스토어 모두 동일한 방식으로 작동합니다. 소스, 이슈 및 게시 실행 지침서는
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)에서 확인할 수 있습니다.
📖 [VS Code Copilot Chat 가이드](docs/guides/VSCODE-COPILOT.md) — 설정, 선택기에 표시되는 항목, 탭 내 대시보드, 문제 해결
### 🎩 신규: OmniRouteTray — 메뉴 막대에 상주하는 게이트웨이
> `omniroute serve`는 항상 실행 중일 때 가장 잘 작동합니다. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**는
> 이를 한 번 설정하면 신경 쓸 필요 없는 macOS용 메뉴 막대 앱으로 바꿔 줍니다. 서버를 시작하고, 재부팅 후에도
> 계속 실행되도록 유지하며, 제자리에서 업데이트하고, 한 번의 클릭으로 실시간 토큰 예산을 확인할 수 있게 해 줍니다.
> **터미널 창을 계속 열어 둘 필요도, `npm install -g omniroute` 설치를 일일이 관리할 필요도 없습니다.**
[Tauri v2](https://v2.tauri.app/)로 제작되었으며(반올림 오차만큼 작은 Rust 코어), 자체적으로
서명된 Node 24 런타임을 포함하고 앱 전용 OmniRoute 설치를 관리하므로 전역 `node`/`bun`과
충돌하지 않습니다. **기존 `~/.omniroute/` 설정과 데이터베이스를 공유**하므로 이미 사용 중인
동일한 OmniRoute에 모자만 씌운 셈입니다. 🎩
기능
작동 방식
🟢 서버 감독
omniroute serve를 실행하고, 이미 실행 중인 인스턴스가 있으면 중복 실행하지 않고 해당 인스턴스를 사용합니다
📊 실시간 사용량을 한눈에 확인
공급자 할당량 막대, 초기화 카운트다운이 포함된 Claude 세션/주간 한도, 30일 비용 내역
🔄 제자리에서 자동 업데이트
단계적 설치, 원자적 교체, 실패 시 롤백 — 항상 최신 릴리스 유지
🚀 로그인 시 시작
선택적으로 로그인 시 실행 가능하며, 트레이에만 표시되고 Dock 아이콘은 없습니다
🩺 진단 및 로그
한 번의 클릭으로 진단 실행 및 서버 로그 확인
```sh
brew install --cask zoispag/tap/omniroute-tray
```
다운로드를 선호하시나요? 릴리스에서 최신 .dmg를 받으세요. 소스, 이슈 및 빌드
문서는 zoispag/omniroute-tray에서 확인할 수 있습니다.
💛 @zoispag의 커뮤니티 프로젝트이며, 공식 OmniRoute 릴리스가 아닙니다.
> 서버를 넘어 OmniRoute는 **80개 이상의 명령어**를 갖춘 **완전한 명령줄 조종석**이며, AI 에이전트가 **스스로** 이를 제어할 수 있도록 개방형 에이전트 프로토콜도 제공합니다.
### ⌨️ 진정한 CLI (`start`만 제공하는 것이 아님)
```bash
omniroute # 게이트웨이 + 대시보드 실행(포트 20128)
omniroute chat # 대화형 TUI 채팅 클라이언트(슬래시: /model /combo /skill /memory)
omniroute setup # 안내형 최초 실행 마법사
omniroute doctor # 제공업체, 포트, 네이티브 종속성 진단
```
### 🛰️ 원격 모드 — 여기서 CLI를 실행하고 VPS에서 OmniRoute 실행
서버에서 OmniRoute를 사용하시나요? **동일한 CLI**로 노트북에서 제어할 수 있습니다. 범위가 지정된 액세스 토큰으로 한 번 로그인하면
이후 모든 명령이 원격 서버를 대상으로 실행됩니다.
```bash
omniroute connect 192.168.0.15 # 비밀번호 → 범위 지정 토큰, 컨텍스트로 저장됨
omniroute models list # ← 원격 서버에서 실행됨
omniroute configure codex # ← 원격 모델을 선택하고 로컬 Codex 프로필 작성
omniroute tokens create --name ci --scope read # 다른 컴퓨터용으로 범위가 더 제한된 토큰 발급
omniroute contexts use default # ← 로컬 서버로 다시 전환
```
토큰의 범위는 `read` / `write` / `admin`으로 지정되며, 프로세스를 생성하는 라우트는 루프백 전용으로 유지됩니다.
📖 [원격 모드](docs/guides/REMOTE-MODE.md)
### 🤝 에이전트 연결 — OmniRoute 자체를 제어합니다
**MCP**, **A2A**, **REST API**, **웹훅** 또는 **원격 CLI**를 통해 OmniRoute를 노출하면, 역량을 갖춘 모든 에이전트(또는 자체 코드)가 라우팅, 제공업체, 콤보, 캐시, 압축, 메모리 등 전체 게이트웨이를 자율적으로 제어할 수 있습니다. 아래 HTTP 엔드포인트는 `http://localhost:20128`에서 제공됩니다.
인터페이스
엔드포인트 / 명령어
용도
🧰 MCP (stdio)
omniroute --mcp
Claude Desktop, Cursor 또는 모든 MCP 클라이언트에 연결
🌊 MCP (HTTP)
/api/mcp/stream
원격 MCP — 110개 도구, 33개 범위(적용은 선택 사항), 전체 감사 추적
📡 MCP (SSE)
/api/mcp/sse
스트리밍 MCP 전송
🤝 A2A
/.well-known/agent.json
에이전트 간 통신, JSON-RPC 2.0 + SSE, 6개 스킬
🌐 REST API
/v1/*
OpenAI 호환 — 채팅, 임베딩, 이미지, 오디오, OCR
🔔 웹훅
/api/webhooks
요청 / 할당량 이벤트를 Slack, Discord, Telegram 또는 임의의 URL로 푸시
🛰️ 원격 CLI
omniroute connect
범위가 지정된 액세스 토큰으로 원격 인스턴스 제어
```bash
# MCP를 통해 Claude Code에 전체 OmniRoute 도구 세트 제공:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP 서버](docs/frameworks/MCP-SERVER.md) · [A2A 서버](docs/frameworks/A2A-SERVER.md) · [에이전트 프로토콜](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ 토큰 15–95% 절약 — 자동으로
### 📖 작동 방식 — 파이프라인, 아키텍처 및 절감 계산법
기본 스택 조합은 `RTK → Caveman`을 실행합니다. 둘 다 동일한 도구/컨텍스트 페이로드에 적용되면 절감 효과가 복리로 누적됩니다.
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
코드 블록, URL, JSON 및 구조화된 데이터는 보존 엔진에 의해 **항상 보호됩니다**.
> **적은 토큰으로 충분한데 왜 많은 토큰을 사용할까요?** 모든 요청은 클라이언트 변경 없이 OmniRoute의 압축 파이프라인을 **투명하게** 통과합니다. 이제 파이프라인은 순서대로 실행되고 라우팅 조합별로 자유롭게 구성할 수 있는 **조합 가능한 12개 엔진 스택**입니다. [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua), [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR)의 아이디어를 기반으로 합니다.
### 🧱 12개 엔진 스택
엔진은 파이프라인 순서대로 실행되며, 각 조합에서 개별적으로 켜고 끄거나 구성할 수 있습니다.
#
엔진
기능
1
Session-Dedup
여러 턴에 걸쳐 반복되는 콘텐츠 제거(콘텐츠 주소 지정 방식, 턴 간 적용)
2
CCR
대용량 블록을 검색 마커 뒤에 보관하고 필요할 때 가져옴
3
Lite
공백 + 이미지 URL 정리(지연 시간이 짧은 기준선)
4
RTK
스마트 도구 결과 필터링, 중복 제거 및 잘라내기(명령어 인식)
5
Responses Tool Output
셸/패치/검색/빌드 출력에 대한 무손실 우선 JSON + 제한된 진단 압축(Responses API)
6
Headroom
벤더링된 GCF 코덱을 통한 JSON 배열의 무손실 표 형식 압축(~30%)
7
Relevance
마지막 사용자 쿼리를 기준으로 추출형 문장 점수 산정
8
Caveman
규칙 기반 산문 압축(출력 기준 ~65–75%)
9
Aggressive
이전 턴의 요약 + 점진적 에이징
10
LLMLingua-2
MobileBERT ONNX를 통한 ML 의미론적 가지치기 — 코드 안전, 비동기
11
Ultra
선택적 소형 모델(SLM) 계층을 활용하는 휴리스틱 토큰 가지치기
12
OmniGlyph
Anthropic 직접 연결에서 측정된 Claude Fable 5를 위한 실험적 컨텍스트-이미지 인코딩. GPT 5.6 트랜스포머는 제공업체 수신 확인 전까지 실패 시 차단 상태를 유지합니다. 네 가지 압축 프로필(기본값인 공격적, 균형, 코딩 안전, 패스스루)(가장 공격적, 명시적 사용 설정 필요)
코드 블록, URL 및 구조화된 데이터는 **항상 바이트 단위까지 완벽하게 보존됩니다**. **원클릭 프리셋**으로 엔진을 조합할 수 있습니다.
모드
절감률
최적 용도
🪶 Lite
~15%
항상 활성화할 수 있는 안전한 기본값
🪨 Standard (Caveman)
~30%
일상적인 코딩
⚡ Aggressive
~50%
도구 사용이 많은 장시간 세션
🔥 Ultra
~75%
최대 절감
🧰 RTK
60–90%
셸/테스트/빌드/git 출력
🔗 Stacked (RTK → Caveman)
78–95%
혼합 프롬프트 + 도구 로그
**실제 예시 — Standard 모드:**
> **이전(69토큰):** _"React 컴포넌트가 다시 렌더링되는 이유는 렌더링 주기마다 새로운 객체 참조를 생성하기 때문일 가능성이 큽니다. 인라인 객체를 prop으로 전달하면 React의 얕은 비교는 매번 이를 다른 객체로 인식하여 다시 렌더링합니다. useMemo를 사용하여 객체를 메모이제이션하는 것을 권장합니다."_
>
> **이후(19토큰):** _"렌더링마다 새 객체 참조 생성. 인라인 객체 prop = 새 참조 = 재렌더링. useMemo로 감싸세요."_
>
> **동일한 답변. 토큰 72% 감소. 정확도 손실 없음.** ✅
**PT-BR 예시 — [Troglodita](https://github.com/leninejunior/troglodita) 모드:**
> **이전(42 토큰):** _"문제는 렌더링 주기마다 새로운 객체 참조가 생성되어 컴포넌트가 다시 렌더링된다는 것입니다. `useMemo` 사용을 권장합니다."_
>
> **이후(12 토큰):** _"재렌더링: 주기마다 새 참조 생성(인라인 객체 재생성). `useMemo` 사용."_
>
> **동일한 답변. 토큰 약 70% 감소. 기술적 정확성은 그대로.** ✅
### 🎚️ 엔진 그 이상 — 출력 스타일, 적응형 다이얼 및 요청별 제어
위의 12개 엔진은 **입력되는** 내용을 줄입니다. 세 가지 추가 계층은 **어떻게**, **언제**, 그리고 무엇이 **출력되는지**를 결정합니다.
- **🪄 출력 스타일** _(출력 축 조정)_ — 결정론적이고 캐시 친화적인 응답 형식 지정 지침을 삽입합니다. 여러 스타일을 조합할 수 있으며 각각 `lite` / `full` / `ultra` 강도를 지원합니다. 스타일 추가는 레지스트리에 한 줄만 등록하면 됩니다.
- **간결한 문체** — 군더더기 / 관사 / 불확실한 표현을 제거하고 기술적 핵심은 정확히 유지합니다.
- **적은 코드** — "게으른 시니어 개발자"식 YAGNI: 요청하지 않은 스캐폴딩 없이 작동하는 최소 변경만 제공합니다.
- **포니테일(게으른 시니어 개발자)** — YAGNI 단계를 따라 근본 원인을 해결하고, 작동하는 최소 diff를 제공합니다.
- **ADHD가 있어요(행동 우선)** — 다음 행동부터 제시하고, 단계에 번호를 붙이며, 구체적인 다음 단계 하나만 제공하고, 서문은 생략합니다.
- **간결한 CJK(文言)** — 고전 중국어 기반의 극도로 간결한 스타일입니다(`zh` 로케일에서만 활성화).
- **🎯 적응형 컨텍스트 예산** _(다이얼)_ — 단일 온/오프 토큰 임계값 대신, **모델의 컨텍스트 윈도우에 맞추는 데** 필요한 수준까지만 가장 저렴하고 손실이 적은 엔진을 단계적으로 적용합니다. 정책: `reserve-output`(기본값, 모델 인식) · `percentage` · `absolute`. 모드: `floor`(적합 보장) · `replace-autotrigger`(명시적 선택 우선) · `off`(레거시 임계값).
- **🎛️ 압축 결정 위치** _(우선순위, 높음 → 낮음)_ — 요청별 `x-omniroute-compression` 헤더 › 라우팅 조합 재정의 › 활성화된 명명 프로필 › 적응형 / 자동 트리거 › 패널 기본값 › 비활성화. 적용된 계획은 `X-OmniRoute-Compression: ; source=` 응답 헤더에 그대로 반환됩니다.
토큰 임계값 기반 자동 트리거를 사용하거나, 적응형 다이얼을 켜거나, 명명 프로필을 고정하거나, 요청별로 일회성 설정을 지정하거나, 라우팅 조합별로 파이프라인을 할당할 수 있습니다. 워크로드에 맞는 방식을 선택하세요. 선택적으로 사용할 수 있는 오프라인 **평가 하네스**(`npm run eval:compression`)는 변경 사항을 적용하기 전에 고정된 코퍼스에서 충실도와 절감률을 평가합니다.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ 빠른 시작
**1) 설치 및 실행**
```bash
npm install -g omniroute
omniroute
```
> 💡 `npm warn ERESOLVE` 또는 peer-dep 경고가 표시되나요? [문제없는 경고입니다](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **npm 11 이상을 사용하시나요?** 허용되지 않은 패키지 수명 주기 스크립트는 npm에서 차단할 수 있습니다. OmniRoute의 `postinstall`(`node scripts/build/postinstall.mjs`)은 네이티브 런타임 파일을 준비하는 데 필요합니다. 전역 설치 시 npm 경고에 표시된 패키지를 허용하세요. OmniRoute 3.8.51에서 보고된 패키지 집합의 경우:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> 이후 전역 설치에서도 이 허용 목록을 재사용하려면 한 번 구성한 다음 정상적으로 설치하세요.
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> 종속성 목록은 릴리스마다 변경될 수 있습니다. npm에서 다른 목록을 보고하면 해당 경고에 표시된 패키지 이름을 사용하세요. 패키지를 허용하면 해당 패키지의 설치 스크립트 실행이 허용됩니다.
> **Gemini Web 또는 다른 웹 쿠키 공급자를 사용하시나요?** npm 패키지에는
> Playwright가 포함되어 있지만 Chromium 바이너리는 포함되어 있지 않습니다. 첫 번째 웹 공급자 요청을 보내기 전에
> [Playwright Chromium 설정](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> 안내를 확인하세요.
대시보드는 `http://localhost:20128`, API는 `http://localhost:20128/v1`에서 사용할 수 있습니다.
**2) 자신의 계정을 사용하여 적격 공급자 연결**
대시보드 → **공급자** → 현재 약관과 할당량이 사용 사례에 적합한 공급자를 선택 → API 키를 추가하거나 계정 연결 절차를 완료합니다. 무료 티어에도 가입, 승인 또는 결제 수단이 필요할 수 있습니다. [무료 티어 가이드](docs/getting-started/FREE-TIERS-GUIDE.md)를 확인하세요. 키 없는 이용 가능 여부는 보장되지 않으며, `tos: avoid`로 표시된 공급자는 기본적으로 `auto`에서 제외됩니다.
**3) 코딩 도구 연결**
```txt
기본 URL: http://localhost:20128/v1
API 키: [대시보드 → 엔드포인트에서 복사]
모델: auto (적격 연결 사이에서 라우팅 — 또는 공급자/모델 선택)
```
**4) 작동 여부 확인**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
연결된 모델 목록이 표시되어야 합니다. 🎉 이것으로 끝입니다. 코딩을 시작하면 OmniRoute가 자동으로 라우팅하고 장애 조치를 수행합니다.
클라이언트에서 사용자 지정 헤더를 보낼 수 없는 경우 OmniRoute는 토큰이 포함된 호환성 별칭도 제공합니다.
```txt
OpenAI 카탈로그: http://localhost:20128/vscode/YOUR_KEY/
OpenAI 모델: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI 채팅: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI 응답: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama 채팅: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama 태그: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
`Authorization: Bearer ...`를 첨부할 수 없는 클라이언트에서만 이를 사용하세요. 헤더 인증이 여전히 권장 방식입니다.
## 📦 더 많은 설치 방법 — Docker, 소스, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest`는 **게시된** 안정 SemVer 중 가장 높은 버전을 따릅니다. git `main`을 추적하지 않습니다. GitOps에서는 `:X.Y.Z`로 버전을 고정하세요. [Docker 릴리스 채널](docs/guides/DOCKER_GUIDE.md#release-channels)을 참조하세요. 이미지에는 **`OMNIROUTE_MEMORY_MB=1024`**가 고정 설정되어 있습니다. 대시보드와 가벼운 채팅에는 충분합니다. **코딩 에이전트**(Claude Code, Codex, Grok 등에서 보내는 `POST /v1/responses`)에는 훨씬 더 큰 V8 힙이 필요하며, 긴 컨텍스트 두 개가 겹치면 약 12 GiB에서 프로세스에 `FATAL ERROR`가 발생합니다. 네이티브 버퍼는 V8 외부에 있으므로 컨테이너 크기를 힙보다 크게 설정하세요.
| 워크로드 | 힙 (`-e OMNIROUTE_MEMORY_MB`) | 컨테이너 (`--memory`) |
| -------------------------------------- | ----------------------------- | --------------------- |
| 대시보드 / 가벼운 채팅 | `1024` (이미지 기본값) | ≥2 g |
| 코딩 에이전트 하나 | `8192` | ≥10 g |
| 동시 실행되는 긴 `/v1/responses` 두 개 | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
전체 표: [Docker 가이드 — 런타임 RAM](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **사전 릴리스 Docker 채널:** `diegosouzapw/omniroute:next` 및
> `diegosouzapw/omniroute:next-web`은 현재 기본 `release/v*`
> 브랜치를 따릅니다. 이러한 가변 태그는 릴리스되지 않은 수정 사항을 테스트하는 용도로만 제공되며
> **프로덕션 환경에서는 지원되지 않습니다**. 자세한 내용은
> [Docker 릴리스 채널](docs/guides/DOCKER_GUIDE.md#release-channels)을 참조하세요.
**🥟 Bun**
Bun 런타임 감지를 통해 표준 `bun install` 및 전역 설치(`bun install -g omniroute`)를 지원합니다.
- **내장 `bun:sqlite`**: OmniRoute는 Bun에서 실행될 때 Bun의 내장 `bun:sqlite` 드라이버를 사용하며, Node.js에서는 `better-sqlite3` 또는 `sql.js`로 대체됩니다.
- **개발 환경에서 자동 Webpack 번들러 선택**: 개발(`bun run dev`) 시 Bun을 자동으로 감지하고 네이티브 V8 바인딩 비호환성을 방지하기 위해 Turbopack을 비활성화하고 Webpack을 사용합니다. 프로덕션 빌드(`bun run build`)는 Node와 마찬가지로 `OMNIROUTE_USE_TURBOPACK`을 정확히 따릅니다. 기본값은 Turbopack이며, Webpack으로 빌드하려면 `OMNIROUTE_USE_TURBOPACK=0`을 사용합니다(`Dockerfile.bun`에서는 이를 `--build-arg`로 노출합니다).
- **전용 Bun Dockerfile**: 네이티브 Bun 프로덕션 배포를 위한 다단계 `Dockerfile.bun`입니다(`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Bun으로 설치 및 실행
bun install
bun run dev
```
**🛠️ 소스에서 설치**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# Nix flakes 사용
nix develop
npm run dev
# 또는 devbox 사용
devbox run npm run dev
```
📖 [Docker 가이드](docs/guides/DOCKER_GUIDE.md) — Compose 프로필, Caddy HTTPS, Cloudflare 터널.
**🦭 Podman**
```bash
# 1. 바인드 마운트할 데이터 디렉터리 준비
mkdir -p data
# 2. Linux + 로컬 루트리스 Podman에서만 실행(원격 Podman Machine 클라이언트에서는 절대 실행하지 마세요):
podman unshare chown 1000:1000 ./data
# 3. 런타임 힌트를 설정하고 로컬 Compose 이미지를 빌드한 후 시작
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
macOS 또는 Windows에서 Podman은 원격 Podman Machine을 사용합니다. `podman unshare`를 건너뛰고
[토폴로지별 데이터 디렉터리 지침](contrib/podman/README.md#data-directory-permissions-by-topology)을 따르세요.
📖 [Podman 가이드](contrib/podman/README.md) — Compose 빌드, Podman Machine 및
Linux/systemd Quadlet 설정.
**⚡ 더 빠르고 가벼운 설치(네이티브 빌드 건너뛰기)**
네이티브 SQLite 엔진(`better-sqlite3`)은 **선택적** 의존성이므로 전역
설치가 소스 컴파일로 인해 중단되는 일은 없습니다. 플랫폼/Node에 맞는 사전 빌드 바이너리가 있으면
이를 사용하고, 그렇지 않으면 순수 JS 엔진(Node 22 이상에서는 `node:sqlite`, 그 외에는 번들된
`sql.js` WASM)으로 투명하게 대체되므로 빌드 도구가 필요하지 않습니다.
설치 후 네이티브 워밍업을 완전히 건너뛰려면(CI, 헤드리스 또는 느린 머신):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1도 이를 건너뜁니다
```
가장 빠른 설치를 위해서는 **pnpm**을 권장합니다(콘텐츠 주소 지정 저장소 + 하드 링크 — 위 내용 참조).
대시보드가 없는 헤드리스 런타임에는 위의 Docker `base` 프로필이나
[Termux 가이드](docs/guides/TERMUX_GUIDE.md)를 사용하세요. CLI와 웹 대시보드는 동일한 프로세스가
하나의 포트에서 제공하므로 현재 별도의 CLI 전용 패키지는 없습니다.
2026-08-24 05:26:03 UTC까지의 병합을 포함하여 라이브 release/v3.8.50의 최신 커밋 dafb4ae808을 기준으로 고정되었습니다. 페이지네이션된 GitHub GraphQL 집계에는 병합된 PR 5,911개가 포함되어 있으며, 저장소 소유자가 작성한 PR 2,707개, Dependabot이 작성한 PR 179개, 그리고 서로 다른 기여자 535명이 작성한 외부 PR 3,025개로 구성됩니다. “변경된 줄 수”는 GitHub의 추가 줄 수와 삭제 줄 수를 합한 값이며 생성된 파일, 잠금 파일, 카탈로그, 번역 및 문서를 포함합니다. 이는 변경량이지 작성된 LOC가 아닙니다. 순위 경계에서 동률인 기여자는 모두 포함했습니다.
### GitHub에 귀속된 커밋
2026-08-24 06:14:31 UTC에 재확인: release/v3.8.50 기본 브랜치에 대해 저장소 Contributors API가 보고한 GitHub 기준 커밋입니다. API는 525개의 ID(사용자 415명, 봇 2개, 익명 108명)를 반환했습니다. 이 표에서는 메인테이너, 봇 및 익명 ID를 제외하고 공동 순위를 유지했습니다. 이 순위는 위의 병합된 PR 순위 및 아래의 639명 규모 Git 메타데이터 집계와는 별개입니다.
> 🙏 이 기여자들이 제공한 기능, 버그 수정 및 인프라 개선은 OmniRoute를 안정적이고 풍부한 기능을 갖춘 프로젝트로 만드는 **핵심 요소**입니다. 모든 풀 리퀘스트, 모든 테스트 케이스, 모든 i18n 번역 파일이 중요합니다. 오픈 소스는 바로 이들과 같은 사람들이 만들어 갑니다.
---
## 💖 스폰서
자비로 OmniRoute를 후원해 주시는 분들께 진심으로 감사드립니다. 모든 후원은 프로젝트가 무료로 독립성을 유지하며 계속 발전하는 데 큰 힘이 됩니다.
… 그리고 비공개로 후원하기를 원하시는 다른 분들께도 감사드립니다 💛공개 GitHub Sponsors 목록은 2026-08-24에 다시 확인되었습니다. GitHub의 activeOnly 상태에 따라 위의 현재 후원자 표시가 결정됩니다. 이전에 공개된 일회성 후원자에게도 계속 감사를 표하며, 비공개 스폰서는 익명으로 유지됩니다.💖 스폰서가 되어 주세요 → — 모든 후원금은 OmniRoute가 무료로 독립성을 유지하는 데 도움이 됩니다.
## 👥 600명 이상의 기여자
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
2026-08-24에 고정 기준 ac02c5b42f에서 감사하고 라이브 release/v3.8.50의 최신 커밋 dafb4ae808에서 다시 확인한 결과: 정규화된 인간 Git ID 639개 — 이 중 407개는 커밋 작성자(메인테이너 포함)로 나타나며, 232개는 명시적인 Co-authored-by 트레일러에만 나타납니다. 이 집계에서는 GitHub noreply 핸들을 정규화하고, 봇/에이전트/서비스/자리표시자 ID 26개를 제외하며, 표시 이름이 같다는 이유만으로 일반 이메일 주소를 병합하지 않습니다.
### 기여 방법
1. 저장소를 포크합니다
2. `main`이 아닌 **활성** `release/vX.Y.Z` 최신 커밋에서 브랜치를 생성합니다 — [브랜치 및 릴리스 모델](docs/ops/BRANCHING_MODEL.md)을 참조하세요
3. 기능 브랜치를 생성합니다(`git checkout -b feat/amazing-feature`)
4. 변경 사항을 커밋합니다(`git commit -m 'feat: add amazing feature'`)
5. 브랜치에 푸시합니다(`git push origin feat/amazing-feature`)
6. **base = 해당 `release/vX.Y.Z` 브랜치**로 Pull Request를 생성합니다
자세한 지침은 [CONTRIBUTING.md](CONTRIBUTING.md)를 참조하세요.
### 새 버전 릴리스
```bash
# 릴리스 생성 — npm publish는 자동으로 실행됩니다
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 스타
## 🌍 StarMapper
## 🙏 감사의 말
OmniRoute는 거인들의 어깨 위에 서 있습니다. **[9router](https://github.com/decolua/9router)**의 포크이자 Go 프로젝트 **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)**의 TypeScript 포팅으로 시작했으며, 이후 아래의 각 하위 시스템은 먼저 길을 개척한 오픈 소스 프로젝트에서 영감을 받았습니다. 이들 각각은 OmniRoute의 구체적인 부분을 만드는 데 영향을 주었습니다. 이 모든 프로젝트에 감사드립니다. 🙏
> ⭐ 스타 수는 2026년 8월 24일 GitHub의 REST API를 통해 확인했습니다. 이 프로젝트들에 스타를 눌러 주세요. 수치는 해당 날짜를 기준으로 한 정확한 스냅샷이며, 시간이 지나면 자연스럽게 변경됩니다.
### 🧬 계보 및 게이트웨이
코딩 어시스턴트 ↔ LLM 트래픽의 MITM 가로채기/분석은 초기 Traffic Inspector 요구사항 수립에 참고가 되었습니다. 이전에 파생된 네 가지 모듈인 SSE 병합, 대화 정규화, 비밀 정보 마스킹 및 헤더 정리는 공개 프로토콜 표준에 기반한 독립적인 클린룸 구현으로 대체되었습니다. 두 개의 호스트 패스스루 표면(passthrough.ts 및 _internal/bypass.cjs)은 독립적으로 분류된 OmniRoute 내부 구현으로 유지되며, 해당 대체 작업의 일부로 재작성되지 않았습니다.