# README (ํ๊ตญ์ด)
๐ **Languages:** ๐บ๐ธ [English](../../../README.md) ยท ๐ช๐น [am](../am/README.md) ยท ๐ธ๐ฆ [ar](../ar/README.md) ยท ๐ฆ๐ฟ [az](../az/README.md) ยท ๐ง๐ฌ [bg](../bg/README.md) ยท ๐ง๐ฉ [bn](../bn/README.md) ยท ๐ง๐ฆ [bs](../bs/README.md) ยท ๐จ๐ฟ [cs](../cs/README.md) ยท ๐ฉ๐ฐ [da](../da/README.md) ยท ๐ฉ๐ช [de](../de/README.md) ยท ๐ฌ๐ท [el](../el/README.md) ยท ๐ช๐ธ [es](../es/README.md) ยท ๐ช๐ช [et](../et/README.md) ยท ๐ฎ๐ท [fa](../fa/README.md) ยท ๐ซ๐ฎ [fi](../fi/README.md) ยท ๐ซ๐ท [fr](../fr/README.md) ยท ๐ฎ๐ช [ga](../ga/README.md) ยท ๐ฎ๐ณ [gu](../gu/README.md) ยท ๐ณ๐ฌ [ha](../ha/README.md) ยท ๐ฎ๐ฑ [he](../he/README.md) ยท ๐ฎ๐ณ [hi](../hi/README.md) ยท ๐ญ๐ท [hr](../hr/README.md) ยท ๐ญ๐บ [hu](../hu/README.md) ยท ๐ฆ๐ฒ [hy](../hy/README.md) ยท ๐ฎ๐ฉ [id](../id/README.md) ยท ๐ณ๐ฌ [ig](../ig/README.md) ยท ๐ฎ๐น [it](../it/README.md) ยท ๐ฏ๐ต [ja](../ja/README.md) ยท ๐ฌ๐ช [ka](../ka/README.md) ยท ๐ฐ๐ญ [km](../km/README.md) ยท ๐ฎ๐ณ [kn](../kn/README.md) ยท ๐ฑ๐น [lt](../lt/README.md) ยท ๐ฑ๐ป [lv](../lv/README.md) ยท ๐ฎ๐ณ [ml](../ml/README.md) ยท ๐ฎ๐ณ [mr](../mr/README.md) ยท ๐ฒ๐พ [ms](../ms/README.md) ยท ๐ฒ๐น [mt](../mt/README.md) ยท ๐ฒ๐ฒ [my](../my/README.md) ยท ๐ณ๐ต [ne](../ne/README.md) ยท ๐ณ๐ฑ [nl](../nl/README.md) ยท ๐ณ๐ด [no](../no/README.md) ยท ๐ฎ๐ณ [or](../or/README.md) ยท ๐ฎ๐ณ [pa](../pa/README.md) ยท ๐ต๐ญ [phi](../phi/README.md) ยท ๐ต๐ฑ [pl](../pl/README.md) ยท ๐ต๐น [pt](../pt/README.md) ยท ๐ง๐ท [pt-BR](../pt-BR/README.md) ยท ๐ท๐ด [ro](../ro/README.md) ยท ๐ท๐บ [ru](../ru/README.md) ยท ๐ฑ๐ฐ [si](../si/README.md) ยท ๐ธ๐ฐ [sk](../sk/README.md) ยท ๐ธ๐ฎ [sl](../sl/README.md) ยท ๐ท๐ธ [sr](../sr/README.md) ยท ๐ธ๐ช [sv](../sv/README.md) ยท ๐ฐ๐ช [sw](../sw/README.md) ยท ๐ฎ๐ณ [ta](../ta/README.md) ยท ๐ฎ๐ณ [te](../te/README.md) ยท ๐น๐ญ [th](../th/README.md) ยท ๐น๐ท [tr](../tr/README.md) ยท ๐บ๐ฆ [uk-UA](../uk-UA/README.md) ยท ๐ต๐ฐ [ur](../ur/README.md) ยท ๐บ๐ฟ [uz](../uz/README.md) ยท ๐ป๐ณ [vi](../vi/README.md) ยท ๐ณ๐ฌ [yo](../yo/README.md) ยท ๐จ๐ณ [zh-CN](../zh-CN/README.md) ยท ๐น๐ผ [zh-TW](../zh-TW/README.md)
---
# ๐ OmniRoute โ ๋ฌด๋ฃ AI ๊ฒ์ดํธ์จ์ด
## ๐ฐ ์ ~1.62B ๋ฌด๋ฃ ํ ํฐ
> ๋ฌด๋ฃ ํฐ์ด๋ฅผ ์ง์ ์กฐํฉํ๋ ์ผ์ ๊ณ ํต์ค๋ฝ์ต๋๋ค. ์์ญ ๊ฐ์ SDK, ์์ญ ๊ฐ์ ์ฌ์ฉ๋ ์ ํ์ด ์๋ ๋ฐ๋ค ์ค์ ๋ก ์ผ๋ง๋ ์ฌ์ฉํ ์ ์๋์ง์กฐ์ฐจ ์๊ธฐ ์ด๋ ต์ต๋๋ค. OmniRoute๋ **35๊ฐ์ ๋ฐ๋ณต ํ ํค์ ๊ฑธ์น 489๊ฐ์ ๋ฌด๋ฃ ํฐ์ด ํญ๋ชฉ**์ ๋ถ๋ฅํ๊ณ , **๊ณต๊ฐ๋ ์๊ฐ ์์ฐ์ด 0๋ณด๋ค ํฐ 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)**
## ๐ ๊ณ์ ์ฑ์ฅํ๋ ๊ฒ์ดํธ์จ์ด
| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
| ----------------------- | :-----: | :-----------------------: | :--------: |
| ๐ ์ ๊ณต์
์ฒด | 290 | **357** | ์ถ๊ฐ ์์ |
| ๐ง ๊ณ ์ ์ฑํ
๋ชจ๋ธ ID | 1185 | **1312** | โ |
| ๐ผ๏ธ ๋ชจ๋ฌ๋ฆฌํฐ ๋ธ๋ฆฌ์ง | โ | ๐ ๋น์ + ์ค๋์ค + ๋น๋์ค | โ |
| ๐ก Radar ๋ฌด๋ฃ ์นดํ๋ก๊ทธ | โ | ๐ ์ ํ์ ์ฐธ์ฌ | โ |
| โ๏ธ ํ ๋น๋ ์ธ์ ์ค์ผ์ค๋ง | โ | ๐ Quota-Share | โ |
| ๐ ํ ๋น๋ ํ
๋ ๋ฉํธ๋ฆฌ | โ | ๐ ์ค์๊ฐ ์ ๊ณต | โ |
**โ [๋ก๋๋งต](ROADMAP.md) โ `v3.9.0 LTS`๋ฅผ ํฅํด ์ํญ ์ค**
## ๐งฉ ์ฌ์ฉ ๊ฐ๋ฅ
[](https://www.npmjs.com/package/omniroute)

[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](LICENSE)


๐ 66๊ฐ ์ธ์ด๋ก ์ ๊ณต
## ๐ ์ค์นํ๋ ์ฆ์ ์๋ โ ํค๋, ์ค์ ๋ ํ์ ์์ต๋๋ค
```bash
# ์๋ก ์ค์น, ์๊ฒฉ ์ฆ๋ช
์์ โ `auto`๋ ์ด๋ฏธ ์๋ํฉ๋๋ค:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
ํน์ ๋ฌด๋ฃ ๋ฐฑ์๋๋ฅผ ์ ํธํ์๋์? `oc/โฆ` (OpenCode Free)๋ฅผ ์ง์ ํธ์ถํ์ธ์. ๊ทธ๋ฐ ๋ค์ `auto`๋ก ์ ํํ์ฌ OmniRoute๊ฐ ์ ํํ๋๋ก ํ์ธ์.
๐ฆ **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 | ๐งช ๋ณต์๋ ฅ ํ
์คํธ(์นด์ค์ค ์์ง๋์ด๋ง)๋ฅผ ์ํ ์ฅ์ ์ฃผ์
๊ฐ์ค์น |
##
### ๐ ๋๋ ์ง์ ๊ตฌ์ฑํ์ธ์ โ 19๊ฐ์ง ๋ผ์ฐํ
์ ๋ต
**19๊ฐ์ง** ์ ๋ต ๋ชจ๋๋ฅผ ์ฝค๋ณด ๋จ๊ณ๋ณ๋ก ์์ ๋กญ๊ฒ ์กฐํฉํ ์ ์์ต๋๋ค.
| # |
์ ๋ต |
๊ธฐ๋ฅ |
| 1 |
priority |
์ฒซ ๋์์ ์ฐ์ ํ๋ ์์ฐจ ๋ชฉ๋ก โ ๊ฐ ๋์์ ๋ชจ๋ ์์งํ ํ ๋ค์ ๋์์ผ๋ก ์ด๋ ๐ฅ |
| 2 |
fill-first |
๊ฐ ๋์์ ํ ๋น๋์ ์์ ํ ์ฑ์ด ํ ๋ค์ ๋์์ผ๋ก ์ด๋ |
| 3 |
weighted |
๋์๋ณ ๊ฐ์ค์น์ ๋ฐ๋ฅธ ๊ฐ์ค ๋ฌด์์ ์ ํ |
| 4 |
round-robin |
๋์์ ์์๋๋ก ์ํ |
| 5 |
p2c |
2๊ฐ ์ ํ ๋ฐฉ์์ ๋ฌด์์ ๋ถํ ๋ถ์ฐ |
| 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๊ฐ๋ฅผ ์ ๊ณตํ๋ฉฐ, `omniroute run`์ 7๊ฐ CLI(Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI)๋ฅผ ์คํํฉ๋๋ค. `omniroute configure`๋ ๋ํํ ๊ณต๊ธ์+๋ชจ๋ธ ์ ํ๊ธฐ์ ์ปจํ
์คํธ๋ณ ์ฆ๊ฒจ์ฐพ๊ธฐ๋ฅผ ํตํด 10๊ฐ ๋์์ ์ง์ํฉ๋๋ค. โ [CLI ํตํฉ](docs/guides/CLI-INTEGRATIONS.md)
- **๐ฐ๏ธ ์๊ฒฉ ๋ชจ๋** โ ๋ฒ์๊ฐ ์ง์ ๋ ํ ํฐ(`connect` / `contexts` / `tokens`)์ผ๋ก ์๊ฒฉ OmniRoute๋ฅผ ์ ์ดํ๊ณ , VPS ์ค์น๋ฅผ ์ํ `antigravity` OAuth ๋์ฐ๋ฏธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. โ [์๊ฒฉ ๋ชจ๋](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)** โ SNI๋ณ CA์ ์ ๋ขฐ ์ ์ฅ์ ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํด ํ๋ก์ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฌด์ํ๋ CLI์ ํธ๋ํฝ์ ์บก์ฒํฉ๋๋ค. โ [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)
**๋จ ํ๋์ ๋ช
๋ น์ผ๋ก 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)
## ๐ 357๊ฐ AI ์ ๊ณต์
์ฒด โ 152๊ฐ๋ ์นดํ๋ก๊ทธ์์ ๋ฌด๋ฃ๋ก ํ์๋จ
> ์ ์ ์ฑํ
, ๋ฏธ๋์ด, ๊ฒ์, ๋ก์ปฌ, ํด๋ผ์ฐ๋ ์์ด์ ํธ ๋ฐ ์์คํ
์ปฌ๋ ์
์ ๋ฐ์ ๊ฑธ์ณ **357๊ฐ์ ๋ฑ๋ก๋ ์ ๊ณต์
์ฒด**๊ฐ ์์ผ๋ฉฐ, ์ด ์ค **152๊ฐ์๋ `hasFree: true` ๊ฒ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค**. ์ฑํ
๋ชจ๋ธ ๋ ์ง์คํธ๋ฆฌ๋ **229๊ฐ ์ ๊ณต์
์ฒด / 2,554๊ฐ์ ๊ณ ์ ์ ๊ณต์
์ฒด-๋ชจ๋ธ ์กฐํฉ / 1,283๊ฐ์ ์์ ๋ชจ๋ธ ID**๋ฅผ ํฌํจํ๋ฉฐ, ๋ณ๋์ ๋ฌด๋ฃ ์์ฐ ์นดํ๋ก๊ทธ์๋ **491๊ฐ์ ๋ชจ๋ธ๋ณ ํ**, **35๊ฐ์ ์ ๊ธฐ ๊ฐฑ์ ํ**, **54๊ฐ์ ์ ๊ธฐ ๊ฐฑ์ /ํค ๋ถํ์ ์๊ตฌ ๋ฌด๋ฃ ์ ๊ณต์
์ฒด**๊ฐ ์์ต๋๋ค. ์ด๋ ์๋์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ๋ถ๋ชจ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ์์ ํ ์ค๋ณต์ ์ ๊ฑฐํ ๊ณ์ฐ ๋ฐฉ์์ [์ ๊ณต์
์ฒด ์ฐธ๊ณ ์๋ฃ](docs/reference/PROVIDER_REFERENCE.md)์ [๋ฌด๋ฃ ํฐ์ด](docs/reference/FREE_TIERS.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 |
| ๐ ๏ธ ์์ค์์ ์ค์น | npm install && npm run dev | ์ง์ ์์ ํ๊ณ ๊ธฐ์ฌ ๊ฐ๋ฅ |
๐ [Docker ๊ฐ์ด๋](docs/guides/DOCKER_GUIDE.md) ยท [๋ฐ์คํฌํฑ](electron/README.md) ยท [๋ฉ๋ด ๋ง๋ ํธ๋ ์ด](https://github.com/zoispag/omniroute-tray) ยท [Termux](docs/guides/TERMUX_GUIDE.md) ยท [PWA](docs/guides/PWA_GUIDE.md) ยท [OpenCode](docs/frameworks/OPENCODE.md)
### ๐งฉ ์ ๊ท: 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**๋ฅผ ์ฐจ๋ก๋ก ์ฌ์ธ์.
| ์คํ ์ด | ๋งํฌ | ํธํ ๋์ |
| ๐งฉ VS Code Marketplace | ์ค์น โ | VS Code โ stable ๋ฐ Insiders |
| ๐ Open VSX Registry | ์ค์น โ | Cursor, Windsurf, VSCodium, Theia, code-server, Gitpod, Antigravity, Kiroโฆ |
ํธ์ง๊ธฐ ๋ด์์ **ํ์ฅ ํ๋ก๊ทธ๋จ** ๋ณด๊ธฐ๋ฅผ ์ด๊ณ **"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 ๋ฆด๋ฆฌ์ค๊ฐ ์๋๋๋ค.
## ๐ ๋น๊ณต๊ฐ ๋ฐ ๋ก์ปฌ ์ฐ์
๐ [๊ถํ ๋ถ์ฌ](docs/architecture/AUTHZ_GUIDE.md) ยท [๊ฐ๋๋ ์ผ](docs/security/GUARDRAILS.md) ยท [์ปดํ๋ผ์ด์ธ์ค](docs/security/COMPLIANCE.md)
## ๐ ์์ ํ CLI + A2A ๋ฐ MCP
> ์๋ฒ๋ฅผ ๋์ด 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 ํธ๋์คํฌ๋จธ๋ ๊ณต๊ธ์ ํ์ธ์ฆ์ด ์ ๊ณต๋ ๋๊น์ง ์คํจ ์ ์ฐจ๋จ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. 4๊ฐ์ง ์์ถ ํ๋กํ(๊ธฐ๋ณธ๊ฐ์ธ ๊ณต๊ฒฉ์ , ๊ท ํ, ์ฝ๋ฉ ์์ , ํจ์ค์ค๋ฃจ) ์ ๊ณต(๊ฐ์ฅ ๊ณต๊ฒฉ์ ์ด๋ฉฐ ๋ช
์์ ์ผ๋ก ํ์ฑํํด์ผ ํจ) |
์ฝ๋ ๋ธ๋ก, 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: ์๋ํ๋ ์ต์ํ์ ๋ณ๊ฒฝ๋ง ์ ์ฉํ๊ณ , ์์ฒญํ์ง ์์ ๋ผ๋ ์ฝ๋๋ ๋ง๋ค์ง ์์ต๋๋ค.
- **Ponytail(๊ฒ์ผ๋ฅธ ์๋์ด ๊ฐ๋ฐ์)** โ 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).
๋์๋ณด๋: `http://localhost:20128` ยท API: `http://localhost:20128/v1`.
**2) ๋ฌด๋ฃ ์ ๊ณต์
์ฒด ์ฐ๊ฒฐ(๊ฐ์
๋ถํ์)**
๋์๋ณด๋ โ **์ ๊ณต์
์ฒด** โ **Kiro AI**(๋ฌด๋ฃ Claude, ๊ณ์ ๋น ์ ์ฝ 50ํฌ๋ ๋ง) ๋๋ **OpenCode Free**(์ธ์ฆ ๋ถํ์) ์ฐ๊ฒฐ โ ์๋ฃ.
**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 ์ ์ฉ ํจํค์ง๋ ์์ต๋๋ค.
# ๐ฌ OmniRoute ์คํ ๋ชจ์ต
## ๐น ๋์์ ๊ฐ์ด๋
2026-08-24 ๊ธฐ์ค ๋์๋ณด๋ ์ค๋
์ท ยท ์๋ณธ ์นดํ๋ก๊ทธ: YT 809 | TT 137 | IG 124 ยท ์ต์ ์ฑ(์ผ): YT 1 | TT 21 | IG 22
๐ฌ #1 โ Instagram
nick_saraev โ ์กฐํ์ 3,042,474ํ
|
๐ฌ #2 โ Instagram
theopenstack โ ์กฐํ์ 692,419ํ
|
๐ฌ #3 โ TikTok
milesreevesai โ ์กฐํ์ 620,400ํ
|
๐ฌ #4 โ YouTube
Vaibhav Sisinty โ ์กฐํ์ 391,109ํ
|
๐ฌ #5 โ Instagram
buildwithai.club โ ์กฐํ์ 347,652ํ
|
**์ ์ฒด ์์(์ค๋ณต ์ ๊ฑฐ๋ ์ ๊ท URL, `v > 0`, ๋๋ฌ ๋ฒ์ ์):**
| #1 | #2 | #3 | #4 | #5 |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [nick_saraev โ Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) โ **3,042,474** | [theopenstack โ Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) โ **692,419** | [milesreevesai โ TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) โ **620,400** | [Vaibhav Sisinty โ YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) โ **391,109** | [buildwithai.club โ Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) โ **347,652** |
| #6 | #7 | #8 | #9 | #10 |
| ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [nivedan.ai โ Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) โ **331,973** | [vaibhavsisinty โ Instagram](https://www.instagram.com/reel/Dae05TSAK1l/) โ **263,744** | [Nick Automates โ YouTube Shorts](https://www.youtube.com/shorts/fZIBK_4fKq8) โ **218,174** | [theroshankrishna โ Instagram](https://www.instagram.com/reel/Dapjs58z0P0/) โ **186,786** | [midudev โ TikTok](https://www.tiktok.com/@midudev/video/7664636453544152342) โ **177,800** |
2026-08-24 ๊ธฐ์ค ์ ๊ท ์งํ: **๊ณ ์ ๋์์ 1.029๊ฐ** ยท **ํ์ธ๋ ์กฐํ์ 11.132.922ํ** (`v > 0`) ยท **๋คํธ์ํฌ๋ณ ์ฑ๋/ํ๋กํ 639๊ฐ**. ์๋ณธ ๋์๋ณด๋์๋ 1.070๊ฐ์ ํ์ด ์์ผ๋ฉฐ, Instagram ์ค๋ณต ํญ๋ชฉ 41๊ฐ๋ ์ ๊ท URL์ ๊ธฐ์ค์ผ๋ก ์ ๊ทํํ์ฌ ๊ฐ ๋์์์์ ๊ฐ์ฅ ๋์ ์กฐํ์๋ฅผ ์ ์งํ์ต๋๋ค.
> ๐ฌ **OmniRoute์ ๊ดํ ๋์์์ ๋ง๋์
จ๋์?** ๋งํฌ์ ํจ๊ป [์ด์](https://github.com/diegosouzapw/OmniRoute/issues/new) ๋๋ [ํ ๋ก ](https://github.com/diegosouzapw/OmniRoute/discussions)์ ๋ฑ๋กํด ์ฃผ์ธ์. ์ฌ๊ธฐ์ ์๊ฐํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
# ๐ง ์ปค๋ฎค๋ํฐ ๋ฐ ๋์๋ง
> ํ์ํ ๋ชจ๋ ๊ฒ์ ํ๊ณณ์์ ์ด์ฉํ์ธ์. ๊ด๋ฆฌ์๋ฅผ ํ๋ก์ฐํ๊ณ , ์ปค๋ฎค๋ํฐ์ ๋ํํ๊ฑฐ๋, ์ด์๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค.
| ์ฑ๋ | ์์น / ๋ฐฉ๋ฒ |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| ๐ผ **LinkedIn** โ ๊ด๋ฆฌ์ ํ๋ก์ฐ | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
| ๐ **GitHub** โ ๋ฆด๋ฆฌ์ค ๋ฐ ํ ํ์ธ | [@diegosouzapw](https://github.com/diegosouzapw) |
| ๐ฌ **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
| โ๏ธ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
| ๐ข **WhatsApp โ ๐ ๊ธ๋ก๋ฒ** | [๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ธฐ](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) |
| ๐ข **WhatsApp โ ๐ง๐ท ๋ธ๋ผ์ง** | [๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ธฐ](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) |
| ๐ **์น์ฌ์ดํธ** | [omniroute.online](https://omniroute.online) |
| ๐ **๐StHub OmniRoute ์ปค๋ฎค๋ํฐ(๋ฌด๋ฃ)** | [StHub ํฌํธ](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) |
| ๐ฆ **์์ค ์ฝ๋** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
| ๐ **๋ฒ๊ทธ ์ ๊ณ ** | [์ด์ ๋ฑ๋ก](https://github.com/diegosouzapw/OmniRoute/issues) โ `npm run system-info` ์ถ๋ ฅ ์ฒจ๋ถ |
| ๐ค **๊ธฐ์ฌํ๊ธฐ** | [CONTRIBUTING.md](CONTRIBUTING.md) ยท [๋ธ๋์น ๋ฐ ๋ฆด๋ฆฌ์ค ๋ชจ๋ธ](docs/ops/BRANCHING_MODEL.md) ยท `good first issue` ์ ํ |
| ๐ **ํ๋ก์ ํธ ํ์** | [ํ์ ๋ฐฉ๋ฒ โ](#-support-omniroute) ยท [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
---
## ๐ ๏ธ ๊ธฐ์ ์คํ
| ๊ณ์ธต | ๊ธฐ์ |
| ๋ฐํ์ | Node.js 22.x / 24.x LTS โ >=22.22.2 <23 || >=24.0.0 <27 |
| ์ธ์ด | TypeScript 6.0 โ src/ ๋ฐ open-sse/ ์ ๋ฐ์ ๊ฑธ์ณ 100% TypeScript (v2.0๋ถํฐ ์ฝ์ด์ any ์์) |
| ํ๋ ์์ํฌ | Next.js 16 + React 19 + Tailwind CSS 4 |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค | better-sqlite3 (SQLite, WAL ์ ๋๋ง) + LowDB (JSON ๋ ๊ฑฐ์) โ 122๊ฐ ๋๋ฉ์ธ ๋ชจ๋, 183๊ฐ ๋ง์ด๊ทธ๋ ์ด์
|
| ๋ฉ๋ชจ๋ฆฌ | SQLite FTS5 ์ ์ฒด ํ
์คํธ + int8-์์ํ ๋ฒกํฐ ์๋ฒ ๋ฉ, ํ์
ํ๋ ๊ฐ์ |
| ์คํค๋ง | Zod 4 โ MCP ๋๊ตฌ I/O ์ ํจ์ฑ ๊ฒ์ฌ + API ๊ณ์ฝ |
| ํ๋กํ ์ฝ | MCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE) |
| ์คํธ๋ฆฌ๋ฐ | Server-Sent Events (SSE) + WebSocket ๋ธ๋ฆฌ์ง (/v1/ws) |
| ์์ถ | 12๊ฐ ์์ง ํ์ดํ๋ผ์ธ โ RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph |
| ์ธ์ฆ ๋ฐ ๋ณด์ | OAuth 2.0 (PKCE) + JWT + API ํค + MCP ๋ฒ์ ์ง์ ์ธ์ฆ ยท AES-256-GCM ์ ์ฅ ๋ฐ์ดํฐ ์ํธํ ยท DOMPurify |
| ์คํ
์ค | wreq-js โ JA3 / JA4 TLS ์ง๋ฌธ ์์ฅ, 3๋จ๊ณ ํ๋ก์ |
| ๋ณต์๋ ฅ | ํ๋ก ์ฐจ๋จ๊ธฐ, ์ง์ ๋ฐฑ์คํ, ์ฌ๋๋ง-ํ๋ ๋ฐฉ์ง, ์๋ ์ฝค๋ณด ์๊ฐ ๋ณต๊ตฌ |
| ๋ก๊น
| pino โ ์์ฒญ ์ปจํ
์คํธ๋ฅผ ํฌํจํ ๊ตฌ์กฐํ๋ JSON ๋ก๊ทธ |
| ํ
์คํ
| Node.js test runner + Vitest โ 5,100๊ฐ ์ด์์ ์ถ์ ๋ ํ
์คํธ ํ์ผ (๋จ์, ํตํฉ, E2E, ๋ณด์, ์ํ๊ณ) ์ ๋ฐ์ ๊ฑธ์ณ 39,000๊ฐ ์ด์์ ์ ์ ํ
์คํธ ์ ์ธ |
| ํ๋ซํผ | ๋ฐ์คํฌํฑ (Electron) ยท Android (Termux) ยท PWA (๋ชจ๋ ๋ธ๋ผ์ฐ์ ) |
| CI/CD | GitHub Actions โ ๋ฆด๋ฆฌ์ค ์ ์๋ npm ๊ฒ์ + Docker Hub |
| ๋งํฌ | ์น์ฌ์ดํธ ยท npm ยท Docker Hub |
## ๐ ๋ฌธ์
### ๐ ์์ํ๊ธฐ
| ๋ฌธ์ | ์ค๋ช
|
| ์ฌ์ฉ์ ๊ฐ์ด๋ | ํ๋ก๋ฐ์ด๋, ์ฝค๋ณด, CLI ํตํฉ, ๋ฐฐํฌ |
| ์ค์ ๊ฐ์ด๋ | ์ ์ฒด ์ค์น ๋ฐฉ๋ฒ, CLI ๋๊ตฌ ๊ตฌ์ฑ, ํ๋กํ ์ฝ ์ค์ , ํ์์์ ์กฐ์ |
| CLI ๋๊ตฌ ๊ฐ์ด๋ | Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot์ ๋๊ตฌ๋ณ ์ค์ |
| ์๊ฒฉ ๋ชจ๋ | ๋ฒ์๊ฐ ์ง์ ๋ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํด ๋
ธํธ๋ถ์ CLI์์ ์๊ฒฉ OmniRoute(VPS) ์ ์ด |
| Claude Code ๊ตฌ์ฑ | launch ๋ฐ ๋ชจ๋ธ๋ณ ํ๋กํ์ ์ฌ์ฉํด Claude Code๋ฅผ OmniRoute(๋ก์ปฌ/์๊ฒฉ)์ ์ฐ๊ฒฐ |
| ๋น ๋ฅธ ์์ | 3๋จ๊ณ: ์ค์น โ ์ฐ๊ฒฐ โ ๊ตฌ์ฑ |
### ๐ง ์ด์ ๋ฐ ๋ฐฐํฌ
### ๐ง ๊ธฐ๋ฅ ๋ฐ ์ํคํ
์ฒ
| ๋ฌธ์ | ์ค๋ช
|
| ์ํคํ
์ฒ | ์์คํ
์ํคํ
์ฒ, ๋ฐ์ดํฐ ํ๋ฆ ๋ฐ ๋ด๋ถ ๊ตฌ์กฐ |
| ์์ถ ๊ฐ์ด๋ | 7๊ฐ์ง ์ต์
์ ํ์ดํ๋ผ์ธ: ๋๊ธฐ / ๊ฒฝ๋ / ํ์ค / ์ ๊ทน์ / ์ธํธ๋ผ / RTK / ์คํํ |
| RTK ์์ถ | ๋ช
๋ น ์ถ๋ ฅ ์์ถ, ํํฐ, ์ ๋ขฐ, ๊ฒ์ฆ, ์์ ์ถ๋ ฅ ๋ณต๊ตฌ |
| ์์ถ ์์ง | Caveman, RTK, ์คํํ ํ์ดํ๋ผ์ธ, ๋์๋ณด๋/API/MCP ์ธํฐํ์ด์ค |
| ์์ถ ๊ท์น ํ์ | Caveman ๋ฐ RTK ํํฐ์ฉ JSON ๊ท์น ํฉ ์คํค๋ง |
| ์์ถ ์ธ์ด ํฉ | ์ธ์ด ๊ฐ์ง ๋ฐ Caveman ๊ท์น ํฉ ์์ฑ |
| ๋ณต์๋ ฅ ๊ฐ์ด๋ | ์ํท ๋ธ๋ ์ด์ปค, ์ฟจ๋ค์ด, ํ, ๋์ ์์ฒญ ํญ์ฃผ ๋ฐฉ์ง, TLS ์คํธํ |
| ์๋ ์ฝค๋ณด ์์ง | 16๊ฐ ์์ ๊ธฐ๋ฐ ์ ์ ์ฐ์ , ๋ชจ๋ ํฉ, ์๊ฐ ๋ณต๊ตฌ |
| ํ๋ก์ ๊ฐ์ด๋ | 3๋จ๊ณ ํ๋ก์ ์์คํ
, 1proxy ๋ง์ผํ๋ ์ด์ค, ๋ ์ง์คํธ๋ฆฌ CRUD |
| ๋ฌด๋ฃ ํฐ์ด | ํตํฉ ๋๋ ํฐ๋ฆฌ: ๋ฌธ์ํ๋ ๋ฐ๋ณต ์ ๊ณต ํ 35๊ฐ / ์นดํ๋ก๊ทธ์ ๋ฑ๋ก๋ ๋ฌด๋ฃ ํฐ์ด ํญ๋ชฉ 489๊ฐ |
| ๊ธฐ๋ฅ ๊ฐค๋ฌ๋ฆฌ | ์คํฌ๋ฆฐ์ท๊ณผ ํจ๊ป ์ดํด๋ณด๋ ์๊ฐ์ ๋์๋ณด๋ ๋๋ฌ๋ณด๊ธฐ |
| ์ฝ๋๋ฒ ์ด์ค ๋ฌธ์ | ์ด๋ณด์ ์นํ์ ์ธ ์ฝ๋๋ฒ ์ด์ค ๋๋ฌ๋ณด๊ธฐ |
### ๐ค ํ๋กํ ์ฝ ๋ฐ API
### ๐ ํ๋ก์ ํธ ๋ฐ ํ์ง
# โญ ์ฃผ์ ๊ธฐ์ฌ์
> OmniRoute๋ ์ด์ ์ ์ธ ์คํ ์์ค ์ปค๋ฎค๋ํฐ์ ์๊ธธ๋ก ๋ง๋ค์ด์ง๋๋ค. ๋ค์ ๊ธฐ์ฌ์๋ค์ ํ๋ก์ ํธ์ ํ์ง, ์์ ์ฑ ๋ฐ ๋๋ฌ ๋ฒ์์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ ํ์ํ ๊ธฐ์ฌ๋ฅผ ํด์ฃผ์
จ์ต๋๋ค. **๊ฐ์ฌํฉ๋๋ค.**
### ๋ณํฉ๋ ํ ๋ฆฌํ์คํธ ๊ธฐ์ค ์ธ๋ถ ๊ธฐ์ฌ์
| ์์ | ๊ธฐ์ฌ์ | ๋ณํฉ๋ PR | ~๋ณ๊ฒฝ๋ ์ค ์ |
| 1 | backryun | 190 | 227,977 |
| 2 | oyi77 | 180 | 407,678 |
| 3 | rdself | 145 | 80,663 |
| 4 | JxnLexn | 128 | 387,049 |
| 5 | KooshaPari | 101 | 125,747 |
| 6 | herjarsa | 88 | 230,872 |
| 7 | RaviTharuma | 79 | 55,106 |
| 8 | maxmad64bis | 69 | 394,715 |
| 9 | artickc | 59 | 33,260 |
| 10 | HouMinXi | 51 | 47,334 |
| 10 | chirag127 | 51 | 5,153 |
| 12 | xz-dev | 50 | 245,976 |
| 13 | hartmark | 47 | 52,185 |
| 14 | rqzbeh | 39 | 143,181 |
| 15 | dhaern | 34 | 19,559 |
| 16 | Dingding-leo | 33 | 1,986 |
| 17 | NomenAK | 32 | 13,854 |
| 18 | MumuTW | 30 | 16,953 |
| 19 | benzntech | 29 | 11,641 |
| 20 | pacocartones | 24 | 9,331 |
| 20 | Prudhvivuda | 24 | 6,312 |
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์ ๊ท์๋ ์ปค๋ฐ

backryun
๐ฅ GitHub ๊ธฐ์ค ์ปค๋ฐ 220๊ฐ
|

Paijo
๐ฅ GitHub ๊ธฐ์ค ์ปค๋ฐ 219๊ฐ
|

Randi
๐ฅ GitHub ๊ธฐ์ค ์ปค๋ฐ 108๊ฐ
|

Ravi Tharuma
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 81๊ฐ
|

Chris
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 70๊ฐ
|

Markus Hartung
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 69๊ฐ ยท ๊ณต๋ 6์
|

Dizzle
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 69๊ฐ ยท ๊ณต๋ 6์
|

Jan Leon
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 64๊ฐ
|

zenobit
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 62๊ฐ
|

Bob.Hou
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 51๊ฐ ยท ๊ณต๋ 10์
|

Xiangzhe
๐
GitHub ๊ธฐ์ค ์ปค๋ฐ 51๊ฐ ยท ๊ณต๋ 10์
|
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๋ฅผ ํตํด ํ์ธํ์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ค์ ์คํ๋ฅผ ๋๋ฌ ์ฃผ์ธ์. ์์น๋ ํด๋น ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ์ ํํ ์ค๋
์ท์ด๋ฉฐ, ์๊ฐ์ด ์ง๋๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๋ณ๊ฒฝ๋ฉ๋๋ค.
### ๐งฌ ๊ณ๋ณด ๋ฐ ๊ฒ์ดํธ์จ์ด
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| 9router | 26,161 | ์ด ํฌํฌ์ ๊ธฐ๋ฐ์ด ๋ ์๋ณธ ํ๋ก์ ํธ๋ก, ์ฌ๊ธฐ์๋ ๋ฉํฐ๋ชจ๋ฌ API๋ฅผ ์ถ๊ฐํ๊ณ TypeScript๋ก ์์ ํ ์ฌ์์ฑํ์ต๋๋ค. |
| CLIProxyAPI | 48,497 | ์ด JavaScript / TypeScript ํฌํธ์ ์๊ฐ์ ์ค Go ๊ตฌํ์
๋๋ค. |
| LiteLLM | 57,100 | ๊ณต๊ฐ ๊ฐ๊ฒฉ ๋ฐ์ดํฐ ์ธํธ๊ฐ ๋น์ฉ ์ถ์ ๋๊ธฐํ์ ์ฌ์ฉ๋๊ณ , ์ ๊ณต์ ์ ๊ทํ ๋ชจ๋ธ์ด ๋ผ์ฐํ
์ค๊ณ์ ์ฐธ๊ณ ๋ AI ๊ฒ์ดํธ์จ์ด์
๋๋ค. |
| codex-chatgpt-web | 1,410 | ๋ธ๋ผ์ฐ์ ์ธ์
, ์๋ต ํ๋ ์ด๋ฐ, ์ฌ์ฉ๋ ๋ฐ ์น ๊ฒ์ ์ด๋ํฐ๋ฅผ ํฌํจํ์ฌ, ๋ฒค๋๋ง๋ ChatGPT Web โ Codex Responses ๋ธ๋ฆฌ์ง์ ๋ง๊ฒ ์กฐ์ ๋ MIT ์์ค์
๋๋ค. |
| free-claude-code | 48,112 | ์คํธ๋ฆผ ๋ณต๊ตฌ, ๋น์ฌ๊ณ ๋ณ์นญ, ๋์ฒด ์น ๊ฒ์, ์ฌ๋ผ์ด๋ฉ ์๋ ์ ํ, ๋ก๊ทธ ๋ฏผ๊ฐ ์ ๋ณด ์ ๊ฑฐ ๋ฐ ๊ฐํ๋ ๋ฐ์ฒ ํ๋ฆ์ผ๋ก ์ด์๋ ํจํด์
๋๋ค. |
| composer-api | 322 | ๋ค์ดํฐ๋ธ Cursor ์คํ๊ธฐ์ ๋ง๊ฒ ์กฐ์ ๋ Cursor Composer์ ๋๊ตฌ ์ ํ, ์ถ๋ ฅ ์ ์ฝ ๋ฐ ๋๊ตฌ ์ปค๋ฐ ํจํด์
๋๋ค. |
| codex-multi-auth | 457 | Codex OAuth ์ฌ์ธ์ฆ์ผ๋ก ์ด์๋ ์ ๊ท ๋ก๊ทธ์ธ ๋ฐ ๋ฆฌํ๋ ์ ํ ํฐ ์ํ ํจํด์
๋๋ค. |
| opencode-anthropic-auth | 510 | Claude Code ํธํ ๋ณํ ๊ธฐ๋ณธ๊ฐ๊ณผ ๊ฒฐ์ ํค๋ ๋์์ OmniRoute์ ๊ตฌ์ฑ ๊ธฐ๋ฐ ๋ธ๋ฆฌ์ง์ ์ผ๋ฐํํ์ต๋๋ค. |
| grok2api-merged | 2 | ์ด ํ๋ก์ ํธ์ Grok ๋ชจ๋ธ ๋งคํ, ๊ฐ์ง TypeError Statsig ์์ฑ๊ธฐ, ์์ฒญ ๋ฐ ๊ธฐ๊ธฐ ๊ธฐ๋ณธ๊ฐ, NDJSON ์๋ต ํ๋ก์ธ์๊ฐ OmniRoute์ Grok Web ์คํ๊ธฐ์ ์ค์ง์ ์ผ๋ก ์ ์ฉ๋์์ต๋๋ค. |
| TQZHR/grok2api | 705 | grok2api-merged์ ์ฃผ์ ์ ์ด์ ์ฝ๋ ์ถ์ฒ๋ก, ํด๋น ๋ชจ๋ธ, ํค๋, ํ์ด๋ก๋, Statsig ๋ฐ ํ๋ก์ธ์ ๊ตฌํ์ Grok Web ๊ณ๋ณด์ ๋ณด์กด๋์ด ์์ต๋๋ค. |
| chenyme/grok2api | 7,520 | TQZHR ๋ฐ grok2api-merged๋ฅผ ๊ฑฐ์ณ ์ ์น๋ Grok ํ์ด๋ก๋ ๋ฐ ๊ธฐ๊ธฐ ๊ธฐ๋ณธ๊ฐ, Statsig ์์ฑ๊ธฐ, result.response ํ๋ก์ธ์์ ๊ธฐ๋ฐ์ด ๋๋ MIT ์์ค์
๋๋ค. |
| grok2api-pro | 27 | grok2api-merged๊ฐ ํ๋ก์ ํ ๊ณ์ธต์ ์ถ์ฒ๋ก ๋ช
์ํ ์ ์ด์ ์์ค์
๋๋ค. OmniRoute๋ ํด๋น ๊ณ๋ณด ๊ณ ์ง๋ฅผ ์ ์งํ์ง๋ง ๋ฒ์๊ฐ ์ ํ๋ Grok Web ์คํ๊ธฐ์ ํ๋ก์ ํ์ ์ด์ํ๋ค๊ณ ์ฃผ์ฅํ์ง๋ ์์ต๋๋ค. |
| GrokProxy | 50 | ์ฟ ํค ์ธ์ฆ ๋ฐฉ์์ Grok ํ๋ก์์ result.response.token ์คํธ๋ฆฌ๋ฐ ํจํด์ด OmniRoute์ Grok Web ์ ์ก ๊ณ์ธต์ ์ฐธ๊ณ ๋์์ต๋๋ค. |
| GrokBridge | 5 | ์ด๊ธฐ Grok Web ๊ตฌํ์์ ์ด ํ๋ก์ ํธ์ HTTP/๋ธ๋ผ์ฐ์ ์
์คํธ๋ฆผ ์ค๊ณ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค. ์ง์ HTTP ๊ฒฝ๋ก๋ GrokProxy์์ ํ์๋์์ผ๋ฏ๋ก ๋
๋ฆฝ์ ์ผ๋ก ์ฝ๋๋ฅผ ์ด์ํ๋ค๊ณ ์ฃผ์ฅํ์ง ์์ต๋๋ค. |
| grok-web-api | 14 | ์ด ํ๋ก์ ํธ์ Rust ChatOptions ๋ฐ ์๋ต ๋ดํฌ ์คํค๋ง๊ฐ OmniRoute์ TypeScript Grok ์์ฒญ ๋ฐ ์คํธ๋ฆฌ๋ฐ ์๋ต ํ์
์ค๊ณ์ ์ฐธ๊ณ ๋์์ต๋๋ค. |
### ๐๏ธ ์ปจํ
์คํธ ๋ฐ ํ ํฐ ์์ถ โ ์์ง
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| Caveman | 100,538 | ํ์ ๊ฐ ๋ "๋ง์ ํ ํฐ ์ ์ฐ๋ ์ ์ ํ ํฐ์ผ๋ก ๋๋๋ฐ" ํ๋ก์ ํธ โ ์์์ธ ๋งํฌ ์ฒ ํ์ ๋น์ฌ์ ํ์ค ์์ถ ๋ชจ๋์ 30๊ฐ ์ด์์ ๊ตฐ๋๋๊ธฐ ์ ๊ฑฐ/์ถ์ฝ ๊ท์น์ ๊ธฐ๋ฐ์ด ๋์์ต๋๋ค. |
| RTK โ Rust Token Killer | 77,185 | ๊ณ ์ฑ๋ฅ ๋ช
๋ น ์ถ๋ ฅ ์์ถ โ ๋น์ฌ์ RTK ์์ง, JSON ํํฐ DSL, ์์ ์ถ๋ ฅ ๋ณต๊ตฌ ๋ฐ RTK โ Caveman ๋ค๋จ๊ณ ํ์ดํ๋ผ์ธ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| headroom | 67,310 | ๊ฐ์ญ์ ์ปจํ
์คํธ ์์ถ(SmartCrusher) โ ๋น์ฌ์ headroom ์์ง๊ณผ ccr ๊ฒ์ ๋ง์ปค ํจํด์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| LLMLingua | 6,598 | ํ๋กฌํํธ ์์ถ ์ฐ๊ตฌ(LLMLingua / LLMLingua-2) โ ๋น์ฌ์ ๋น๋๊ธฐ์, ์ฝ๋ ์์ ์ฑ ๋ณด์ฅ, ์ฅ์ ์ ๊ฐ๋ฐฉํ llmlingua ์์ง์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| llmlingua-2-js | 31 | ๋น์ฌ์ LLMLingua ์์ง์์ ์์ปค ์ค๋ ๋ ๋ฐฑ์๋๋ก ์ฌ์ฉํ๋ JS/ONNX ํฌํธ(MobileBERT / XLM-RoBERTa)์
๋๋ค. |
| Troglodita | 40 | ๋ธ๋ผ์ง ํฌ๋ฅดํฌ๊ฐ์ด ํ ํฐ ์์ถ โ ๋ธ๋ผ์ง ํฌ๋ฅดํฌ๊ฐ์ด ๋ฌธ๋ฒ์ ๋ง์ถฐ ์กฐ์ ๋ ๋์ด ๋ฐ๋ณต ์ถ์ ๋ฐ ๊ตฐ๋๋๊ธฐ ์ ๊ฑฐ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋น์ฌ์ pt-BR ์ธ์ด ํฉ์ ๊ตฌ๋ํฉ๋๋ค. |
| ponytail | 108,957 | ํ์ ๊ฐ ๋ "๊ฒ์ผ๋ฅธ ์๋์ด ๊ฐ๋ฐ์" YAGNI ์ฝ๋ ์คํฌ โ ๋น์ฌ์ less-code ์ถ๋ ฅ ์คํ์ผ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. ์ด๋ ์๋ํ๋ ์ต์ ๋ณ๊ฒฝ์ผ๋ก ์ ๋ํ์ฌ _์์ฑ๋๋_ ์ฝ๋๋ฅผ ์ค์ด๋ ๋ฐฉ์์ผ๋ก, Caveman์ ๊ฐ๊ฒฐํ ์ฐ๋ฌธ๊ณผ ์ถ๋ ฅ ์ธก๋ฉด์์ ์ง์ ์ด๋ฃน๋๋ค. |
| i-have-adhd | 23,526 | ํ๋ ์ฐ์ ์ ADHD ์นํ์ ์๋ต ์คํ์ผ์ 5๊ฐ ์ธ์ด์ ๊ฑธ์น OmniRoute์ ๊ฐ๊ฒฐํ ์ถ๋ ฅ ์คํ์ผ๋ก ์ ์ฉํ์ต๋๋ค. |
### ๐งฉ ์์ถ ํ์, ํ ํฐ ์ฐ๊ตฌ ๋ฐ ์ฝ๋ ์ธ์ ๋๊ตฌ
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| TOON | 25,233 | ํ ํฐ ์งํฅ ๊ฐ์ฒด ํ๊ธฐ๋ฒ โ ์ด ๊ธฐ๋ฐ์ ํค๋ ๋ฐ ํ ๋ชจ๋ธ์ด ๋น์ฌ์ ํ ํ์ ์์ถ ๋จ๊ณ๋ฅผ ํ์ฑํ์ต๋๋ค. |
| GCF โ Graph Compact Format | 41 | ๊ฐ๊ฒฐํ ๊ทธ๋ํ ํ์๊ณผ ๋ฒ์ฉ ํ๋กํ ์ค๊ณ๋ OmniRoute์ ํ ํ์ ์์ถ ๋ฐ Headroom ์ฝ๋ฑ ํ์์ ์ํฅ์ ์ฃผ์์ต๋๋ค. |
| gcf-typescript | 4 | Headroom ๋ฒ์ฉ ํ๋กํ ์ฝ๋ฑ์ผ๋ก ์ง์ ๋ฒค๋๋งํ๊ณ ํ์ฅํ MIT TypeScript ๊ตฌํ์
๋๋ค. |
| token-optimizer-mcp | 494 | Brotli/SQLite ์บ์ + ์ธ์
๋ณ ์ปจํ
์คํธ ๋ธํ โ ๋น์ฌ์ session-dedup ์์ง์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| token-savior | 1,122 | Bash ์ถ๋ ฅ ์์ถ + MCP ํ๋กํ โ ๋น์ฌ์ ์์ถ ์ค๋จ ์์น๊ณผ MCP ๋๊ตฌ ๋งค๋ํ์คํธ ์ถ์์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| token-saver | 138 | ์คํจ๋ฅผ ๊ณ ๋ คํ ์ค๋จ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํ์ผ ์ ํ๋ณ ์ฝํ
์ธ ์ธ์ ์ถ๋ ฅ ์์ถ โ ๋น์ฌ์ ์ ํ๋ณ ๋์คํจ์น์ ์ต์ ์ด๋ ๋ฏธ๋ฌ ์ ๊ฑด๋๋ฐ๊ธฐ ๋ฐฉ์์ ๊ฒ์ฆํ์ต๋๋ค. |
| token-optimizer | 1,951 | "์ ๋ น ํ ํฐ์ ์ฐพ์๋ผ" โ ์คํ๋ก๋ฉ + ๋ณต๊ตฌ ๊ฐ๋ฅํ ํธ๋ค ํจํด์ด ๋น์ฌ์ CCR ์คํ๋ก๋ฉ ๊ตฌ์์ ์ํฅ์ ์ฃผ์์ต๋๋ค. |
| TokenMizer | 28 | ๋น์ฌ์ ์ธ์
์ค๋ณต ์ ๊ฑฐ ์ค๊ณ์ ์ํฅ์ ์ค ์ธ์
๊ทธ๋ํ + ํด ๊ฐ ์ค ์ค๋ณต ์ ๊ฑฐ ์ฒญ์ฌ์ง์
๋๋ค. |
| OmniCompress | 3 | Rust ์ด ๊ธฐ๋ฐ JSON + ์ฝํ
์ธ ์ฃผ์ ๊ธฐ๋ฐ ๊ฒ์ + ๋ฉ์์ง ๊ฐ ์ค๋ณต ์ ๊ฑฐ โ ๋น์ฌ์ headroom/ccr/session-dedup ์์ง ์ค๊ณ์ ์บ์ ์์ ์ฑ์ ๋ณด์ฅํ๋ "์์ถ๋ ํํ๋ ์์น์ ๋
๋ฆฝ์ ์ด๋ค"๋ผ๋ ๋ถ๋ณ ์กฐ๊ฑด์ ๊ฒ์ฆํ์ต๋๋ค. |
| mcp-compressor | 113 | MCP ๋๊ตฌ ์คํค๋ง/์ค๋ช
์์ถ โ ๋น์ฌ์ MCP ๋๊ตฌ ๋งค๋ํ์คํธ ์นด๋๋๋ฆฌํฐ ์ถ์์ ์ํฅ์ ์ฃผ์์ต๋๋ค. |
| RepoMapper | 197 | Aider ์คํ์ผ ์ ์ฅ์ ๋งต ์์ ์ง์ โ ๋น์ฌ์ ์ ์ฅ์ ๋งต / ๊ฒ์ ์์ ์ง์ ํ์์ ์ํฅ์ ์ฃผ์์ต๋๋ค. |
| quiet-shell-mcp | 4 | MCP๋ฅผ ํตํ ์ ์ธ์ ์
ธ ์ถ๋ ฅ ์ถ์ โ ๋น์ฌ์ ์ ์ธ์ bash ์ถ๋ ฅ ์์ถ์ ๊ฒ์ฆํ์ต๋๋ค. |
| ts-morph | 6,162 | TypeScript Compiler API ๋๊ตฌ ํคํธ โ ๋ฌธ์์ด, ํ
ํ๋ฆฟ ๋ฐ ์ ๊ท์ ๋ฆฌํฐ๋ด์ ๋ณด์กดํ๋ ๋น์ฌ์ ํ์ ๊ธฐ๋ฐ ์ฃผ์ ์ ๊ฑฐ ๊ธฐ๋ฅ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
### ๐ง ๋ฉ๋ชจ๋ฆฌ ๋ฐ RAG
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| Mem0 | 63,902 | ๋ฒ์ฉ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต โ ํ๋ก์๋ฅผ ์ฐ๊ธฐ/์ฝ๊ธฐ ๊ฒฝ๊ณ๋ก ์ฌ์ฉํ๋ ๋ชจ๋ธ์ด ๋น์ฌ์ ๋ฉ๋ชจ๋ฆฌ ์ํคํ
์ฒ๋ฅผ ํ์ฑํ์ต๋๋ค. |
| Letta (MemGPT) | 24,382 | ๊ณ์ธตํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ถ ์ํ ์ ์งํ ์์ด์ ํธ โ ๋น์ฌ์ Context Control & Recovery (CCR) ๊ณ์ธตํ ๋ชจ๋ธ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| WFGY | 1,781 | ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ๋ 16๊ฐ์ง RAG/LLM ์คํจ ๋ชจ๋์ ๋ํ ProblemMap ๋ถ๋ฅ ์ฒด๊ณ โ ๋น์ฌ์ ๋ฌธ์ ํด๊ฒฐ ๊ฐ์ด๋์์ ์ฌ์ฉํ๋ ๊ณตํต ์ฉ์ด ์ฒด๊ณ์
๋๋ค. |
### ๐ฐ๏ธ ํธ๋ํฝ ๊ฒ์ฌ, MITM ๋ฐ ํฌ๋ช
ํ๋ก์
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| llm-interceptor | 66 | ์ฝ๋ฉ ์ด์์คํดํธ โ LLM ํธ๋ํฝ์ MITM ๊ฐ๋ก์ฑ๊ธฐ/๋ถ์์ ์ด๊ธฐ Traffic Inspector ์๊ตฌ์ฌํญ ์๋ฆฝ์ ์ฐธ๊ณ ๊ฐ ๋์์ต๋๋ค. ์ด์ ์ ํ์๋ ๋ค ๊ฐ์ง ๋ชจ๋์ธ SSE ๋ณํฉ, ๋ํ ์ ๊ทํ, ๋น๋ฐ ์ ๋ณด ๋ง์คํน ๋ฐ ํค๋ ์ ๋ฆฌ๋ ๊ณต๊ฐ ํ๋กํ ์ฝ ํ์ค์ ๊ธฐ๋ฐํ ๋
๋ฆฝ์ ์ธ ํด๋ฆฐ๋ฃธ ๊ตฌํ์ผ๋ก ๋์ฒด๋์์ต๋๋ค. ๋ ๊ฐ์ ํธ์คํธ ํจ์ค์ค๋ฃจ ํ๋ฉด(passthrough.ts ๋ฐ _internal/bypass.cjs)์ ๋
๋ฆฝ์ ์ผ๋ก ๋ถ๋ฅ๋ OmniRoute ๋ด๋ถ ๊ตฌํ์ผ๋ก ์ ์ง๋๋ฉฐ, ํด๋น ๋์ฒด ์์
์ ์ผ๋ถ๋ก ์ฌ์์ฑ๋์ง ์์์ต๋๋ค. |
| ProxyBridge | 5,995 | ํ๋ก์ธ์ค๋ณ ํฌ๋ช
ํ๋ก์ ๋ผ์ฐํ
โ ๋น์ฌ์ ์ถฉ๋ ์์ MITM ํด์ , ์์ผ ์ ํด ์๊ฐ ์ด๊ณผ, /proc ํ๋ก์ธ์ค ๊ท์ ๋ฐ TPROXY ์บก์ฒ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
### ๐ ๋ชจ๋ธ ๋ฐ์ดํฐ, ๊ด์ธก ๊ฐ๋ฅ์ฑ ๋ฐ UI
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| models.dev | 6,555 | AI ๋ชจ๋ธ ์ฌ์, ๊ฐ๊ฒฉ ๋ฐ ๊ธฐ๋ฅ์ ๋ํ ๊ณต๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค โ ๋น์ฌ์ ๋ชจ๋ธ ์นดํ๋ก๊ทธ์ ๋ค์ดํฐ๋ธ๋ก ๋๊ธฐํ๋ฉ๋๋ค. |
| React Flow / xyflow | 38,108 | ๋น์ฌ์ ์ค์๊ฐ Compression Studio ๋ฐ Combo/Routing Studio๋ฅผ ๊ตฌ๋ํ๋ ๋
ธ๋ ๊ธฐ๋ฐ ๊ทธ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. |
| LangGraph | 40,314 | LangGraph Studio์ ์ค์๊ฐ ์ํฌํ๋ก ๊ทธ๋ํ ์๊ฐํ๋ ๋น์ฌ Studios์ ์ค์๊ฐ ์บ์ค์ผ์ด๋ ๋ณด๊ธฐ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| Langfuse | 33,592 | ํธ๋ ์ด์ค โ ์คํฌ โ ์์ฑ์ผ๋ก ์ด์ด์ง๋ ๊ด์ธก ๊ฐ๋ฅ์ฑ ๋ชจ๋ธ์ ๋น์ฌ์ Compression Studio ์ํฐํด์ ํ์ฑํ์ต๋๋ค. |
| Kiali | 3,631 | Istio ์๋น์ค ๋ฉ์ ๊ด์ธก ๊ฐ๋ฅ์ฑ โ Routing/Combo Studio์ ํ๋ก ์ฐจ๋จ๊ธฐ ๋ฐฐ์ง ๋ฐ ์ค๋ฅ ์์ง ์๊ฐํ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| lobe-icons | 2,428 | ๋น์ฌ ๋์๋ณด๋ ์ ๋ฐ์์ ๊ณต๊ธ์ ์์ด์ฝ์ ๋ ๋๋งํ๋ AI/LLM ๋ธ๋๋ ๋ก๊ณ ์
๋๋ค. |
| flag-icons | 12,354 | README ์ธ์ด ์ ํ๊ธฐ์ ์ฌ์ฉ๋๋ MIT ๋ผ์ด์ ์ค SVG ๊ตญ๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. |
### ๐ก๏ธ ๋ณด์
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| awesome-secure-defaults | 721 | ๋น์ฌ์ ๋ณด์ ์ ํ(Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink)์ ์ง์นจ์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ ๋ ๋ชฉ๋ก์
๋๋ค. |
### ๐งญ ๋ณด์ ๋๊ตฌ
| ํ๋ก์ ํธ | โญ | OmniRoute์ ์๊ฐ์ ์ค ๋ฐฉ์ |
| ClawRouter | 6,564 | ์์ฒญ ์ค๋ณต ์ ๊ฑฐ, ๋น์์ฉ ๋ฌด๋น์ฉ ํด๋ฐฑ, ํ๋ฌ๊ทธํ Auto-Combo ์ ๋ต ๋ฐ ๋ค๊ตญ์ด ์๋ ๋ถ๋ฅ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| Antigravity-Manager | 30,652 | ๊ณ์ ์ธ์ ๋ชจ๋ธ ์ฌ๋งคํ, ์คํ ํ์ผ ๊ฒฝ๋ก ๊ฒ์ฆ ๋ฐ ์๊ธ์ ๋ ์ด๋ธ ๋์์ OmniRoute์ Antigravity ๋ฐํ์์ ์ฐธ๊ณ ๊ฐ ๋์์ต๋๋ค. |
| vscode-antigravity-cockpit | 4,817 | ๊ฐ๊ฒฐํ ํ ๋น๋ ์ด๊ธฐํ ์นด์ดํธ๋ค์ด ํ์์ OmniRoute์ ํด๋น ๊ณต๊ธ์ ํ๋ ํ์์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| AionUi | 32,230 | ACP ํตํฉ์ OmniRoute์ ์ค์น๋ CLI ์์ด์ ํธ ์๋ ๊ฐ์ง์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
| CodexBar | 20,507 | Grok Build ํ ๋น๋ ํ๋ฉด์ ์๋ณํ์ผ๋ฉฐ, ์ดํ OmniRoute๊ฐ ์ค์ ์์ด์ด ํ์์ ๋
๋ฆฝ์ ์ผ๋ก ๊ฒ์ฆํ๊ณ ์์ ํ์ต๋๋ค. |
## ๐ ๋ผ์ด์ ์ค
MIT ๋ผ์ด์ ์ค - ์์ธํ ๋ด์ฉ์ [LICENSE](LICENSE)๋ฅผ ์ฐธ์กฐํ์ธ์.
---
**[โฌ ๋งจ ์๋ก ๋์๊ฐ๊ธฐ](#-omniroute)** ยท ์คํ ์์ค AI ์ปค๋ฎค๋ํฐ๋ฅผ ์ํด โค๏ธ๋ฅผ ๋ด์ ๋ง๋ค์์ต๋๋ค.
OmniRoute v3.8.51 ยท Node โฅ22.22.2 ยท MIT ๋ผ์ด์ ์ค ยท omniroute.online