# 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 ๋Œ€์‹œ๋ณด๋“œ

# ๐Ÿš€ OmniRoute โ€” ๋ฌด๋ฃŒ AI ๊ฒŒ์ดํŠธ์›จ์ด OmniRoute โ€” ์ฝ”๋”ฉ์„ ๋ฉˆ์ถ”์ง€ ๋งˆ์„ธ์š”. ๋ชจ๋“  AI ๋„๊ตฌ โ†’ 358๊ฐœ ๊ณต๊ธ‰์ž โ€” 150๊ฐœ ์ด์ƒ ๋ฌด๋ฃŒ โ€” ๋‹จ์ผ ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ†ตํ•ด. Claude Code, Codex, Cursor, Cline, Copilot ๋ฐ Antigravity๋ฅผ ์ž๋™ ๋Œ€์ฒด ๊ธฐ๋Šฅ์œผ๋กœ ๋ฌด๋ฃŒ Claude / GPT / Gemini๋กœ. RTK + Caveman ์Šคํƒ ์••์ถ•์œผ๋กœ 15โ€“95% ํ† ํฐ ์ ˆ์•ฝ (ํ‰๊ท  ~89%) โ€” ํ•œ๋„์— ๋„๋‹ฌํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. 358๊ฐœ AI ๊ณต๊ธ‰์ž ยท 150๊ฐœ ์ด์ƒ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ยท ์›” ~16.2์–ต ๋ฌด๋ฃŒ ํ† ํฐ ยท 19๊ฐ€์ง€ ๋ผ์šฐํŒ… ์ „๋žต ยท ์‹œ์ž‘ ๋น„์šฉ $0.
## ๐Ÿ’ฐ ์›” ~1.62B ๋ฌด๋ฃŒ ํ† ํฐ
> ๋ฌด๋ฃŒ ํ‹ฐ์–ด๋ฅผ ์ง์ ‘ ์กฐํ•ฉํ•˜๋Š” ์ผ์€ ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹ญ ๊ฐœ์˜ SDK, ์ˆ˜์‹ญ ๊ฐœ์˜ ์‚ฌ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ๋Š” ๋ฐ๋‹ค ์‹ค์ œ๋กœ ์–ผ๋งˆ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€์กฐ์ฐจ ์•Œ๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. OmniRoute๋Š” **35๊ฐœ์˜ ๋ฐ˜๋ณต ํ’€ ํ‚ค์— ๊ฑธ์นœ 489๊ฐœ์˜ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ํ•ญ๋ชฉ**์„ ๋ถ„๋ฅ˜ํ•˜๊ณ , **๊ณต๊ฐœ๋œ ์›”๊ฐ„ ์˜ˆ์‚ฐ์ด 0๋ณด๋‹ค ํฐ 17๊ฐœ ํ’€๊ณผ ๋ชจ๋ธ๋ณ„ Groq ํ•œ๋„ 5๊ฐœ**๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ† ํฐ ์ˆ˜์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ, ๊ณต์œ  ํ’€์€ ์ค‘๋ณต ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€์—ญ ์‹ ์› ํ™•์ธ์„ ๊ฑฐ์ณ์•ผ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ• ๋‹น๋Ÿ‰(ํ˜„์žฌ: ModelScope)์€ ๋ณ„๋„๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, ์ง€์—ญ ์‹ ์› ํ™•์ธ ํ›„ ์ œ๊ณต๋˜๋Š” +~6M์€ ์ฃผ์š” ์ˆ˜์น˜์— ์ ˆ๋Œ€ ํ•ฉ์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋Œ€์‹œ๋ณด๋“œ(`/dashboard/free-tiers`)์—์„œ ๊ณ„์† ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OmniRoute ๋ฌด๋ฃŒ ํ‹ฐ์–ด ์˜ˆ์‚ฐ ์นด๋“œ: ๋งค์›” ์•ˆ์ •์ ์œผ๋กœ ~1.62B๊ฐœ์˜ ๋ฌด๋ฃŒ ํ† ํฐ, ๊ฐ€์ž… ํฌ๋ ˆ๋”ง์„ ํฌํ•จํ•˜๋ฉด ์ฒซ ๋‹ฌ์—๋Š” ์ตœ๋Œ€ ~2.22B๊ฐœ๋ฅผ ํ•˜๋‚˜์˜ ์—”๋“œํฌ์ธํŠธ์—์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฌธ์„œํ™”๋œ 35๊ฐœ์˜ ๋ฐ˜๋ณต ํ’€ ํ‚ค๊ฐ€ ๋ถ„๋ฅ˜๋œ 489๊ฐœ์˜ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ํ•ญ๋ชฉ์„ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค. ๊ณต์œ  ํ’€๋งˆ๋‹ค ํ•œ ๋ฒˆ๋งŒ ๊ณ„์‚ฐํ•˜๋Š” ์ •์งํ•œ ํ’€ ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐฉ์‹ โ€” ๊ณต๊ฐœ๋œ ์›”๊ฐ„ ํ† ํฐ ์˜ˆ์‚ฐ์ด 0๋ณด๋‹ค ํฐ 17๊ฐœ์˜ ๋ฐ˜๋ณต ํ’€๊ณผ ๋ชจ๋ธ๋ณ„ Groq ํ•œ๋„ 5๊ฐœ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์•ฝ๊ด€ ์œ„ํ—˜ ์นดํƒˆ๋กœ๊ทธ์—์„œ 13๊ฐœ ์ œ๊ณต์—…์ฒด๋Š” ํšŒํ”ผ ๋Œ€์ƒ์œผ๋กœ ํ‘œ์‹œ๋˜๋ฏ€๋กœ ์‚ฌ์šฉ ์—ฌ๋ถ€๋Š” ์ง์ ‘ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‚ฐ ๋ง‰๋Œ€์—๋Š” Mistral 1B, Nara 210M, LLM7 150M, xKiro 150M, Groq 30M(๋ชจ๋ธ๋ณ„ ํ•œ๋„ 5๊ฐœ) ๋ฐ ๋” ์ž‘์€ ํ’€๋“ค์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฒซ ๋‹ฌ ๊ฐ€์ž… ํฌ๋ ˆ๋”ง๊ณผ ํ† ํฐ ํ•œ๋„๊ฐ€ ์—†๋Š” ์˜๊ตฌ ๋ฌด๋ฃŒ ์ œ๊ณต์—…์ฒด๋Š” ์ฃผ์š” ์ˆ˜์น˜๋ฅผ ๋ถ€ํ’€๋ฆฌ์ง€ ์•Š๋„๋ก ๋ณ„๋„๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. /dashboard/free-tiers์—์„œ ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ๋Ÿ‰/์ž”์—ฌ๋Ÿ‰์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. > ์‹ค์‹œ๊ฐ„ `/dashboard/free-tiers` ํŽ˜์ด์ง€์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์š”์•ฝ์ž…๋‹ˆ๋‹ค. ์ „์ฒด ๋ฐฉ๋ฒ•๋ก (ํ’€ ์ค‘๋ณต ์ œ๊ฑฐ, ํฌ๋ ˆ๋”ง ํ‹ฐ์–ด, ์ œ๊ณต์—…์ฒด ์•ฝ๊ด€): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**. > > ์ด ์ˆ˜์น˜๋Š” 2์ฃผ๋งˆ๋‹ค ์‹ค์ œ ์นดํƒˆ๋กœ๊ทธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žฌ๊ฐ์‚ฌ๋˜๋ฉฐ **์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ณ€๋™**ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต์—…์ฒด๊ฐ€ ๋ฌด๋ฃŒ ํ‹ฐ์–ด๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์ˆ˜์น˜๊ฐ€ ๊ฐ์†Œํ•˜๊ณ , ์ƒˆ๋กœ์šด ๋ฌด๋ฃŒ ํ‹ฐ์–ด๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ €ํฌ๋Š” ์ƒํ–ฅ ๋ฐ˜์˜ฌ๋ฆผํ•œ ์ตœ์ƒ์˜ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์นดํƒˆ๋กœ๊ทธ์—์„œ ์‹ค์ œ๋กœ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

โญ OMNIROUTE๊ฐ€ ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๊ณ  ์ž‘์—…์„ ๋” ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ์ €์žฅ์†Œ์— Star๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ์„ธ์š”.

[![Star ์ˆ˜](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute) diegosouzapw%2FOmniRoute | Trendshift [![Star ๊ธฐ๋ก ์ˆœ์œ„](https://api.star-history.com/badge?repo=diegosouzapw/OmniRoute&theme=dark)](https://www.star-history.com/diegosouzapw/omniroute) [![olud.ai](https://olud.ai/badge.php?tool=diegosouzapw-omniroute)](https://olud.ai/project/diegosouzapw-omniroute.html) ### ๐Ÿ’ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ฐธ์—ฌํ•˜์„ธ์š” **๐Ÿ‘‹ ์œ ์ง€๊ด€๋ฆฌ์ž๋ฅผ ํŒ”๋กœ์šฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ œ๊ณต์—…์ฒด, ๋ฆด๋ฆฌ์Šค ๋ฐ ํŒ์„ ๊ฐ€์žฅ ๋จผ์ € ๋ฐ›์•„๋ณด์„ธ์š”:** [![LinkedIn์—์„œ Diego ํŒ”๋กœ์šฐ](https://img.shields.io/badge/Follow_Diego_on-LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/diegosouzapw/) [![GitHub์—์„œ @diegosouzapw ํŒ”๋กœ์šฐ](https://img.shields.io/github/followers/diegosouzapw?style=for-the-badge&logo=github&logoColor=white&label=Follow%20on%20GitHub&color=181717)](https://github.com/diegosouzapw) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/U47eFqAXCn) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/omnirouteOficial) [![WhatsApp ๊ธ€๋กœ๋ฒŒ](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) [![WhatsApp ๋ธŒ๋ผ์งˆ](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) [![์›น์‚ฌ์ดํŠธ](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](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`๋ฅผ ํ–ฅํ•ด ์ˆœํ•ญ ์ค‘**

## ๐Ÿงฉ ์‚ฌ์šฉ ๊ฐ€๋Šฅ [![npm ๋ฒ„์ „](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) ![NPM ์›”๊ฐ„ ๋‹ค์šด๋กœ๋“œ](https://img.shields.io/npm/dm/omniroute?label=npm/month&color=cb3837&logo=npm) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![๋ผ์ด์„ ์Šค: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) ![Docker ๋‹ค์šด๋กœ๋“œ](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Electron ๋‹ค์šด๋กœ๋“œ](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F)
๐Ÿš€ ์‹œ์ž‘ ๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘ ๐Ÿ“ฆ ์„ค์น˜ ๐Ÿ†“ ์„ค์ • ๋ถˆํ•„์š”
๐Ÿ’ก ์•Œ์•„๋ณด๊ธฐ ๐Ÿ’ฅ ์•ฝ์† ๐Ÿค” OmniRoute๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๐Ÿ† OmniRoute์˜ ์ฐจ๋ณ„์ 
โš™๏ธ ๊ธฐ๋Šฅ ๐ŸŽฏ ์ฝค๋ณด ๐ŸŒ ์ œ๊ณต์—…์ฒด ๐Ÿ”Œ CLI ๋ฐ MCP
๐Ÿ—œ๏ธ ์••์ถ• ๐Ÿ–ฅ๏ธ ์‹คํ–‰ ํ™˜๊ฒฝ ๐Ÿ”’ ๋น„๊ณต๊ฐœ
๐Ÿ‘€ ์‚ดํŽด๋ณด๊ธฐ ๐ŸŽฌ ์‹ค์ œ ์ž‘๋™ ๋ชจ์Šต โœจ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๐Ÿค– ํ˜ธํ™˜ CLI
๐Ÿ’š ํ›„์› ๐Ÿ’š ํ›„์› / ๊ธฐ๋ถ€ ๐Ÿ’ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ ๐Ÿ’– ํ›„์›์ž
๐Ÿ“ฆ ํ”„๋กœ์ ํŠธ ๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ ๐Ÿ“– ๋ฌธ์„œ ๐Ÿ‘ฅ ๊ธฐ์—ฌ์ž
๐ŸŒ 66๊ฐœ ์–ธ์–ด๋กœ ์ œ๊ณต

์˜์–ด (en) ํฌ๋ฅดํˆฌ๊ฐˆ์–ด โ€” ๋ธŒ๋ผ์งˆ (pt-BR) ํฌ๋ฅดํˆฌ๊ฐˆ์–ด (pt) ์ŠคํŽ˜์ธ์–ด (es) ํ”„๋ž‘์Šค์–ด (fr) ์ดํƒˆ๋ฆฌ์•„์–ด (it) ๋…์ผ์–ด (de) ๋„ค๋œ๋ž€๋“œ์–ด (nl) ๋Ÿฌ์‹œ์•„์–ด (ru) ์šฐํฌ๋ผ์ด๋‚˜์–ด (uk-UA) ํด๋ž€๋“œ์–ด (pl) ์ฒด์ฝ”์–ด (cs) ์Šฌ๋กœ๋ฐ”ํ‚ค์•„์–ด (sk) ๋ฃจ๋งˆ๋‹ˆ์•„์–ด (ro) ํ—๊ฐ€๋ฆฌ์–ด (hu) ๋ถˆ๊ฐ€๋ฆฌ์•„์–ด (bg) ๋ด๋งˆํฌ์–ด (da) ํ•€๋ž€๋“œ์–ด (fi) ๋…ธ๋ฅด์›จ์ด์–ด (no) ์Šค์›จ๋ด์–ด (sv) ์ค‘๊ตญ์–ด โ€” ๊ฐ„์ฒด (zh-CN) ์ค‘๊ตญ์–ด โ€” ๋ฒˆ์ฒด (zh-TW) ์ผ๋ณธ์–ด (ja) ํ•œ๊ตญ์–ด (ko) ํƒœ๊ตญ์–ด (th) ๋ฒ ํŠธ๋‚จ์–ด (vi) ์ธ๋„๋„ค์‹œ์•„์–ด (id) ๋ง๋ ˆ์ด์–ด (ms) ํ•„๋ฆฌํ•€์–ด (phi) ํžŒ๋””์–ด (hi) ๊ตฌ์ž๋ผํŠธ์–ด (gu) ๋งˆ๋ผํ‹ฐ์–ด (mr) ํƒ€๋ฐ€์–ด (ta) ํ…”๋ฃจ๊ตฌ์–ด (te) ๋ฒต๊ณจ์–ด (bn) ์šฐ๋ฅด๋‘์–ด (ur) ํŽ˜๋ฅด์‹œ์•„์–ด (fa) ์•„๋ž์–ด (ar) ํžˆ๋ธŒ๋ฆฌ์–ด (he) ํŠ€๋ฅดํ‚ค์˜ˆ์–ด (tr) ์•„์ œ๋ฅด๋ฐ”์ด์ž”์–ด (az) ์Šค์™€ํž๋ฆฌ์–ด (sw) ๊ทธ๋ฆฌ์Šค์–ด (el) ํฌ๋กœ์•„ํ‹ฐ์•„์–ด (hr) ์„ธ๋ฅด๋น„์•„์–ด (sr) ๋ฆฌํˆฌ์•„๋‹ˆ์•„์–ด (lt) ์—์Šคํ† ๋‹ˆ์•„์–ด (et) ๋ผํŠธ๋น„์•„์–ด (lv) ์Šฌ๋กœ๋ฒ ๋‹ˆ์•„์–ด (sl) ๋ชฐํƒ€์–ด (mt) ์•„์ผ๋žœ๋“œ์–ด (ga) ์นธ๋‚˜๋‹ค์–ด (kn) ๋ง๋ผ์–„๋žŒ์–ด (ml) ์˜ค๋ฆฌ์•ผ์–ด (or) ํŽ€์ž๋ธŒ์–ด (pa) ๋„คํŒ”์–ด (ne) ์‹ฑํ• ๋ผ์–ด (si) ๋ฏธ์–€๋งˆ์–ด (my) ํฌ๋ฉ”๋ฅด์–ด (km) ํ•˜์šฐ์‚ฌ์–ด (ha) ์š”๋ฃจ๋ฐ”์–ด (yo) ์ด๊ทธ๋ณด์–ด (ig) ์•”ํ•˜๋ผ์–ด (am) ์šฐ์ฆˆ๋ฒ ํฌ์–ด (uz) ์กฐ์ง€์•„์–ด (ka) ์•„๋ฅด๋ฉ”๋‹ˆ์•„์–ด (hy)


## ๐Ÿ†“ ์„ค์น˜ํ•˜๋Š” ์ฆ‰์‹œ ์ž‘๋™ โ€” ํ‚ค๋„, ์„ค์ •๋„ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค
์„ค์น˜ํ•˜๋Š” ์ฆ‰์‹œ ์ž‘๋™ โ€” ์ œ๋กœ ์„ค์ •. ์„ธ ๋‹จ๊ณ„: 1. ์„ค์น˜ โ€” npm i -g omniroute, ์„œ๋ฒ„๊ฐ€ localhost:20128์—์„œ ๋ถ€ํŒ…๋ฉ๋‹ˆ๋‹ค. 2. ๋„๊ตฌ๋ฅผ http://localhost:20128/v1๋กœ ์—ฐ๊ฒฐ โ€” ๋ชจ๋“  OpenAI ํ˜ธํ™˜ ๋„๊ตฌ(Claude Code, Cursor, Cline). 3. ์‘๋‹ต โ€” API ํ‚ค, ๊ฐ€์ž…, ์„ค์ • ์—†์ด ์ฆ‰์‹œ ์‘๋‹ต์„ ์œ„ํ•ด ๋ชจ๋ธ auto๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๋ฆฌ์Šค ์ œ๊ณต์—…์ฒด OpenCode Free๋Š” auto ์ฝค๋ณด์— ๋ฏธ๋ฆฌ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด, ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋ฉด ๋ฐ”๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ```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/)
# ๐Ÿ’ฅ ์•ฝ์†
์•ฝ์† โ€” ํ•˜๋‚˜์˜ ์—”๋“œํฌ์ธํŠธ์™€ 358๊ฐœ์˜ ์ œ๊ณต์—…์ฒด. ์ž๋™ ๋Œ€์ฒด ๊ธฐ๋Šฅ์€ ๋‹ค๋ฅธ ์ •์ƒ์ ์ธ ๋Œ€์ƒ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋™์•ˆ ๋ผ์šฐํŒ…์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์„ฏ ๊ฐ€์ง€ ํ•ต์‹ฌ ์š”์†Œ: 358๊ฐœ ์ œ๊ณต์—…์ฒด์— ๊ฑธ์นœ ํƒ„๋ ฅ์ ์ธ ๋Œ€์ฒด ๊ธฐ๋Šฅ ยท ์ ๊ฒฉ ์›Œํฌ๋กœ๋“œ์—์„œ ์ตœ๋Œ€ 95% ํ† ํฐ ์ ˆ์•ฝ ยท 150๊ฐœ ์ด์ƒ์˜ ๋ฌด๋ฃŒ ํ‹ฐ์–ด์™€ 54๊ฐœ์˜ ๋ฐ˜๋ณต/ํ‚ค๋ฆฌ์Šค ์˜๊ตฌ ๋ฌด๋ฃŒ ์ œ๊ณต์—…์ฒด๋กœ $0๋ถ€ํ„ฐ ์‹œ์ž‘ ยท ํ•˜๋‚˜์˜ ์„ค์ •์„ ํ†ตํ•ด 36๊ฐœ์˜ CLI/์—์ด์ „ํŠธ ํ†ตํ•ฉ ยท /v1์—์„œ OpenAI, Claude, Gemini ๋ฐ Responses API ํ˜ธํ™˜์„ฑ ยท ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ, TLS ์Šคํ…”์Šค, MCP 110 ๋„๊ตฌ, A2A, ๋ฉ”๋ชจ๋ฆฌ, ๊ฐ€๋“œ๋ ˆ์ผ, ํ‰๊ฐ€ ๋ฐ 5,100๊ฐœ ์ด์ƒ์˜ ์ถ”์ ๋œ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์— ๊ฑธ์นœ 39,000๊ฐœ ์ด์ƒ์˜ ์ •์  ํ…Œ์ŠคํŠธ ์„ ์–ธ์„ ํฌํ•จํ•œ ํ”„๋กœ๋•์…˜ ์ œ์–ด.

# ๐Ÿค” ์™œ OmniRoute์ธ๊ฐ€์š”?
์™œ OmniRoute์ธ๊ฐ€ โ€” 10๊ฐœ์˜ ๋Œ€์‹œ๋ณด๋“œ, ๋งŒ๋ฃŒ๋œ API ํ‚ค, ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์š”๊ธˆ ์ฒญ๊ตฌ์— ์‹œ๋‹ฌ๋ฆฌ์ง€ ๋งˆ์„ธ์š”. 10๊ฐ€์ง€ ์ผ์ƒ์ ์ธ ๋ฌธ์ œ์  vs ํ•ด๊ฒฐ์ฑ…: ํ• ๋‹น๋Ÿ‰ ๋ฏธ์‚ฌ์šฉ ๋งŒ๋ฃŒ โ†’ ๊ตฌ๋… ์ตœ๋Œ€ํ™”; ์ฝ”๋”ฉ ์ค‘ ์†๋„ ์ œํ•œ โ†’ 4๋‹จ๊ณ„ ์ž๋™ ๋Œ€์ฒด (๊ตฌ๋… โ†’ API โ†’ ์ €๋ ด โ†’ ๋ฌด๋ฃŒ); ๋„๊ตฌ ์ถœ๋ ฅ์ด ํ† ํฐ ์†Œ๋ชจ โ†’ RTK + Caveman ์••์ถ• (15โ€“95%); ๋น„์‹ผ API โ†’ ๋น„์šฉ ์ตœ์ ํ™” ๋ผ์šฐํŒ…; ๋ชจ๋“  ๋„๊ตฌ์— ์ž์ฒด ์„ค์ • โ†’ ํ•˜๋‚˜์˜ ์—”๋“œํฌ์ธํŠธ, ํ•˜๋‚˜์˜ ๋Œ€์‹œ๋ณด๋“œ; AI ์ฐจ๋‹จ โ†’ 3๋‹จ๊ณ„ ํ”„๋ก์‹œ + TLS ์Šคํ…”์Šค; ๋งŒ๋ฃŒ๋œ ํ‚ค โ†’ 3๋‹จ๊ณ„ ํƒ„๋ ฅ์„ฑ (ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ, ํ‚ค ์ฟจ๋‹ค์šด, ๋ชจ๋ธ ์ž ๊ธˆ); ํŒ€์ด ํ•˜๋‚˜์˜ ๊ตฌ๋… ๊ณต์œ  โ†’ ๊ณต์ •ํ•œ ํ• ๋‹น๋Ÿ‰์˜ ํ‚ค ํ’€; ๋ˆ„๊ตฐ๊ฐ€์˜ ํด๋ผ์šฐ๋“œ๋ฅผ ํ†ตํ•œ ํ”„๋กฌํ”„ํŠธ โ†’ AES-256-GCM ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ ๋กœ์ปฌ ์šฐ์„ ; ์ง€์ถœ ๊ฐ€์‹œ์„ฑ ์—†์Œ โ†’ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ (์‚ฌ์šฉ๋Ÿ‰, ํ• ๋‹น๋Ÿ‰, ์ ˆ์•ฝ, p95 ์ง€์—ฐ ์‹œ๊ฐ„).
OmniRoute ์š”์ฒญ ํ๋ฆ„: IDE ๋˜๋Š” CLI (Claude Code, Cursor, Clineโ€ฆ)๊ฐ€ ํ•˜๋‚˜์˜ ๋กœ์ปฌ ์—”๋“œํฌ์ธํŠธ (http://localhost:20128/v1)๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค; OmniRoute ์Šค๋งˆํŠธ ๋ผ์šฐํ„ฐ (RTK + Caveman ์••์ถ•, 19๊ฐ€์ง€ ๋ผ์šฐํŒ… ์ „๋žต, ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ, TLS ์Šคํ…”์Šค, MCP, A2A, ๊ฐ€๋“œ๋ ˆ์ผ)๋Š” ์ ๊ฒฉํ•˜๊ณ  ์ •์ƒ์ ์ธ ๋Œ€์ƒ์ด ๋‚จ์•„์žˆ๋Š” ๋™์•ˆ 4๋‹จ๊ณ„ ์ œ๊ณต์—…์ฒด ํ‹ฐ์–ด (ํ‹ฐ์–ด 1 ๊ตฌ๋…, ํ‹ฐ์–ด 2 API ํ‚ค, ํ‹ฐ์–ด 3 ์ €๋ ด, ํ‹ฐ์–ด 4 ๋ฌด๋ฃŒ)๋ฅผ ํ†ตํ•ด ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

## ๐Ÿค ์˜คํ”ˆ ์†Œ์Šค ์นœ๊ตฌ๋“ค์˜ ์ง€์›

Kimi K3 โ€” Open Frontier Intelligence ยท 2.8T parameters ยท 1M-token context

> **์˜คํ”ˆ ์†Œ์Šค ์นœ๊ตฌ๋กœ ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”?** ์ด๋“ค์€ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์ง€์ง€ํ•˜๊ณ  OmniRoute๊ฐ€ ๊ณ„์† ์›€์ง์ผ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ํšŒ์‚ฌ๋“ค์ž…๋‹ˆ๋‹ค. ์ €ํฌ๋Š” ๊ทธ๋“ค์ด ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ํ† ํฐ์ด ์–ด๋””์— ์‚ฌ์šฉ๋˜๋Š”์ง€ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ฐํž™๋‹ˆ๋‹ค. ์—ฐ๋ฝ์ฒ˜: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi (Moonshot AI)
Kimi
Moonshot AI

Founding Open Source Friend
์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•ด ์ฃผ์‹  ์ฐฝ๋ฆฝ ์˜คํ”ˆ ์†Œ์Šค ์นœ๊ตฌ์ธ 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
Cheaper Inference
cheaperinference.com

Open Source Friend
์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•ด ์ฃผ์‹  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
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 ์‚ฌ์šฉ์ž์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ๊ด€๋Œ€ํ•œ ๋ฌด๋ฃŒ ๊ฐ€์ž… ์ฟ ํฐ์„ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ ๊ณต๊ธ‰์—…์ฒด๋ฅผ ์•Œ๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ์ด์Šˆ๋ฅผ ์—ด์–ด์ฃผ์‹œ๋ฉด ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

## ๐ŸŽฏ ์ฝค๋ณด โ€” ํ•ต์‹ฌ ๊ธฐ๋Šฅ
19๊ฐ€์ง€ ์ฝค๋ณด ๋ผ์šฐํŒ… ์ „๋žต ์ „์ฒด์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ โ€” ์ „๋žต๋ณ„ ํƒ€์ผ: priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, cache-optimized, lkgp, auto, fusion, pipeline. ๊ฐ ์ „๋žต์˜ ๊ธฐ๋Šฅ์€ ์œ„ ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. > **์ฝค๋ณด**๋Š” 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๊ฐœ ๊ณ„์ธต) OmniRoute ๋ณต์›๋ ฅ โ€” ์„œ๋กœ ๋…๋ฆฝ์ ์ธ 3๊ฐœ์˜ ์ž๊ฐ€ ๋ณต๊ตฌ ๊ณ„์ธต์œผ๋กœ, ๊ฐ ์žฅ์• ์— ์ ํ•ฉํ•œ ๊ณ„์ธต์ด ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต 1 ๊ณต๊ธ‰์ž ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ(๊ณต๊ธ‰์ž ์ „์ฒด): 408/5xx์—์„œ๋งŒ ์ž‘๋™ํ•˜๋ฉฐ, ์ž„๊ณ„๊ฐ’์€ OAuth 8ํšŒ / API ํ‚ค 12ํšŒ / ๋กœ์ปฌ 2ํšŒ์ด๊ณ , 60์ดˆ/30์ดˆ/15์ดˆ ํ›„ HALF-OPEN ํ”„๋กœ๋ธŒ๋กœ ์ „ํ™˜๋˜์–ด ์ง€์—ฐ ๋ณต๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. OPEN ์ƒํƒœ์—์„œ๋Š” ์ฝค๋ณด๊ฐ€ ๋‹ค์Œ ๊ณต๊ธ‰์ž๋กœ ์žฌ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต 2 ์—ฐ๊ฒฐ ์ฟจ๋‹ค์šด(ํ‚ค/๊ณ„์ • ํ•˜๋‚˜): ๊ธฐ๋ณธ๊ฐ’์€ OAuth 5์ดˆ / API ํ‚ค 3์ดˆ์ด๋ฉฐ, ์š”์ฒญ ํญ์ฃผ ๋ฐฉ์ง€ ๊ฐ€๋“œ๊ฐ€ ์ ์šฉ๋œ ์ง€์ˆ˜ํ˜• ร—2 ๋ฐฑ์˜คํ”„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , 429์—์„œ๋Š” Retry-After๋ฅผ ๋”ฐ๋ฅด๋ฉฐ, ์„ฑ๊ณต ์‹œ ๋ชจ๋“  ์˜ค๋ฅ˜ ์ƒํƒœ๊ฐ€ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ์ฟจ๋‹ค์šด ์ค‘์ธ ํ‚ค ํ•˜๋‚˜๋Š” ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค๋ฅธ ํ‚ค๋“ค์€ ๊ณ„์† ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต 3 ๋ชจ๋ธ ์ž ๊ธˆ(๋ชจ๋ธ ํ•˜๋‚˜): ๋ชจ๋ธ๋ณ„ 429, ๋กœ์ปฌ 404 ๋˜๋Š” ๋ชจ๋“œ ๊ฑฐ๋ถ€๋Š” ํ•ด๋‹น ๋ชจ๋ธ๋งŒ ์ž ๊ทธ๋ฉฐ, ์—ฐ๊ฒฐ ์ „์ฒด๋ฅผ ์ž ๊ทธ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ข…๋ฃŒ ์ƒํƒœ(์ฐจ๋‹จ๋จ, ๋งŒ๋ฃŒ๋จ, ํฌ๋ ˆ๋”ง ์†Œ์ง„)๋Š” ์ฟจ๋‹ค์šด์ด ์•„๋‹ˆ๋ผ ์šด์˜์ž๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“– [์ž๋™ ์ฝค๋ณด ์—”์ง„](docs/routing/AUTO-COMBO.md) ยท [๋ณต์›๋ ฅ ๊ฐ€์ด๋“œ](docs/architecture/RESILIENCE_GUIDE.md)
## ๐Ÿ† OmniRoute๊ฐ€ ์ฐจ๋ณ„ํ™”๋˜๋Š” ์ 
OmniRoute๊ฐ€ ์ฐจ๋ณ„ํ™”๋˜๋Š” ์  โ€” 9router, OpenRouter, CLIProxyAPI ๋ฐ LiteLLM๊ณผ ๋น„๊ตํ•œ 13๊ฐ€์ง€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ตœ์‹  ๊ธฐ๋Šฅ ์Šค๋ƒ…์ƒท. OmniRoute: 358๊ฐœ ๊ณต๊ธ‰์ž, 150๊ฐœ ์ด์ƒ์˜ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ๋‚ด์žฅ, 19๊ฐ€์ง€ ๋ผ์šฐํŒ… ์ „๋žต, 12๊ฐœ ์—”์ง„ ํ† ํฐ ์••์ถ•, 110๊ฐœ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋œ ๋‚ด์žฅ MCP ์„œ๋ฒ„, A2A ์—์ด์ „ํŠธ ํ”„๋กœํ† ์ฝœ, ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ, ๊ฐ€๋“œ๋ ˆ์ผ, ํด๋ผ์šฐ๋“œ ์—์ด์ „ํŠธ, TLS ์ง€๋ฌธ ์Šคํ…”์Šค, Desktop/Termux/PWA ๋ฐ 42๊ฐœ i18n UI ๋กœ์ผ€์ผ. OmniRoute๋Š” MIT ๋ผ์ด์„ ์Šค์ด๋ฉฐ ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ์Ÿ์‚ฌ ๊ธฐ๋Šฅ ๋ฐ ๊ฐœ์ˆ˜๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ๋ฐฉ๋ฒ•๋ก ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๐Ÿ“Š 9router, OpenRouter, CLIProxyAPI ๋ฐ LiteLLM๊ณผ ๋น„๊ตํ•œ ์ „์ฒด ๋ฐฉ๋ฒ•๋ก  ๋ฐ ๊ธฐ๋Šฅ๋ณ„ ์„ธ๋ถ€ ์ •๋ณด โ†’ [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## ๐Ÿ’š OmniRoute ํ›„์›ํ•˜๊ธฐ OmniRoute๋Š” MIT ๋ผ์ด์„ ์Šค๋กœ ๊ณต๊ฐœ์ ์œผ๋กœ ์œ ์ง€ยท๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด๋‚˜ ๋น„์šฉ์„ ์ ˆ์•ฝํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด, ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ›„์›ํ•ด ์ฃผ์„ธ์š”. ํ›„์›์€ ๋ผ์šฐํŒ… ์šฐ์„ ์ˆœ์œ„์— ์ ˆ๋Œ€ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ›„์›์œผ๋กœ ์–ป๋Š” ๊ฒƒ์€ ๋…ธ์ถœ์ด์ง€ ์ˆœ์œ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
โญ ์ €์žฅ์†Œ์— ๋ณ„ํ‘œ ํ‘œ์‹œ๋ฌด๋ฃŒ โ€” ์ธ์ง€๋„๋ฅผ ๋†’์ด๋Š” ๋ฐ ์‹ค์งˆ์ ์œผ๋กœ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹คOmniRoute์— ๋ณ„ํ‘œ ํ‘œ์‹œ
๐Ÿ™ GitHub Sponsors์ผํšŒ์„ฑ ๋˜๋Š” ์›”๊ฐ„ ํ›„์› ยท ํ”Œ๋žซํผ ์ˆ˜์ˆ˜๋ฃŒ ์—†์Œgithub.com/sponsors/diegosouzapw
โ˜• Ko-fi๋น ๋ฅธ ์ผํšŒ์„ฑ ํ›„์›, ํ›„์›์ž๋Š” ๊ฐ€์ž… ๋ถˆํ•„์š”ko-fi.com/diegosouzapw
๐Ÿง‹ Buy Me a Coffee์†Œ์†Œํ•˜๊ณ  ํŽธ์•ˆํ•œ ๋ฐฉ์‹์˜ ํ›„์›buymeacoffee.com/diegosouzapw
๐Ÿ– Liberapay์ •๊ธฐ ํ›„์› ยท ๋น„์˜๋ฆฌ ยท ์˜คํ”ˆ ์†Œ์Šคliberapay.com/diegosouzapw
๐Ÿ‡ง๐Ÿ‡ท PIX (๋ธŒ๋ผ์งˆ)์ฆ‰์‹œ ์†ก๊ธˆ, ์ˆ˜์ˆ˜๋ฃŒ ์—†์Œํ‚ค ๋ฐ QR์€ ์•„๋ž˜ ์ฐธ์กฐ
โ‚ฟ ์•”ํ˜ธํ™”ํBTC ยท ETH ยท USDT-TRC20 ยท USDC-Solana์ฃผ์†Œ๋Š” ์•„๋ž˜ ์ฐธ์กฐ
**๐Ÿ‡ง๐Ÿ‡ท PIX** โ€” ์ฆ‰์‹œ ์†ก๊ธˆ, ์ˆ˜์ˆ˜๋ฃŒ ์—†์Œ (๋ธŒ๋ผ์งˆ) OmniRoute PIX QR ์ฝ”๋“œ ํ‚ค (๋ฌด์ž‘์œ„): `5d865059-bc44-483a-962d-43ceb80126eb` Pix ๋ณต์‚ฌ ๋ฐ ๋ถ™์—ฌ๋„ฃ๊ธฐ: ``` 00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD ```
โ‚ฟ ์•”ํ˜ธํ™”ํ โ€” BTC ยท ETH ยท USDT-TRC20 ยท USDC-Solana (ํด๋ฆญํ•˜์—ฌ ํŽผ์น˜๊ธฐ)
โ‚ฟ BTCBitcoin (SegWit)bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
ฮž ETHEthereum (ERC20)0x64Cf6B68A6Ff34288e89172950a2d00102337a84
โ‚ฎ USDTTron (TRC20)TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDCSolana2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
โš ๏ธ ๊ฐ ์ฝ”์ธ์€ ํ‘œ์‹œ๋œ ๋„คํŠธ์›Œํฌ์—์„œ๋งŒ ์ „์†กํ•˜์„ธ์š”. ์ž˜๋ชป๋œ ๋„คํŠธ์›Œํฌ๋กœ ์ „์†กํ•˜๋ฉด ์ž๊ธˆ์„ ์žƒ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๐Ÿ› ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๊ฑฐ๋‚˜ ์˜๊ฒฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? [ํ† ๋ก ](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)
## ๐Ÿค– ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ CLI ๋ฐ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ > ํ•˜๋‚˜์˜ ์„ค์ • โ€” `http://localhost:20128/v1` โ€” ์œผ๋กœ **๋ชจ๋“ ** AI IDE ๋˜๋Š” CLI์—์„œ ๋ฌด๋ฃŒ ๋ฐ ์ €๋น„์šฉ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Claude Code
Claude Code
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Codex CLI
Codex CLI
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Cline
Cline
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Kilo Code
Kilo Code
Zoo Code
Zoo Code
Continue
Continue
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Aider
Aider
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ForgeCode
ForgeCode
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
jcode
jcode
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
DeepSeek TUI
DeepSeek TUI
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
CodeWhale
CodeWhale
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
OpenCode
OpenCode
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Factory Droid
Factory Droid
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
GitHub Copilot CLI
Copilot CLI
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Cursor CLI
Cursor CLI
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Smelt
Smelt
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Pi (pi-coding-agent)
Pi
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Grok Build (xAI)
Grok Build
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Hermes Agent (Nous Research)
Hermes Agent
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
OpenClaw
OpenClaw
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Goose
Goose
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Open Interpreter
Open Interpreter
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Warp AI
Warp AI
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
deyin.ai
deyin.ai
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
๏ผ‹ ๋‹ค์Œ ๋„๊ตฌ์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ยท 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)
## ๐ŸŒ 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)์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
### ๐Ÿข ๋ชจ๋“  ์ฃผ์š” ์—ฐ๊ตฌ์†Œ โ€” ํ•˜๋‚˜์˜ ์—”๋“œํฌ์ธํŠธ๋กœ
OpenAI
OpenAI
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Anthropic
Anthropic
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Gemini
Gemini
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
xAI Grok
xAI Grok
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
DeepSeek
DeepSeek
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Mistral
Mistral
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Qwen
Qwen
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Meta Llama
Meta Llama
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Groq
Groq
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
NVIDIA
NVIDIA
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
MiniMax
MiniMax
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Cohere
Cohere
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Perplexity
Perplexity
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Hugging Face
HuggingFace
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Together
Together
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Fireworks
Fireworks
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Cloudflare
Cloudflare
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
Baidu
Baidu
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
โ€ฆ๊ทธ ์™ธ 330๊ฐœ ์ด์ƒ โ€” ๋ชจ๋“  ์•„์ด์ฝ˜์€ ๋Œ€์‹œ๋ณด๋“œ์˜ ์ œ๊ณต์—…์ฒด ์นดํƒˆ๋กœ๊ทธ์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ๐Ÿ“– [์ œ๊ณต์—…์ฒด ์ฐธ๊ณ  ์ž๋ฃŒ](docs/reference/PROVIDER_REFERENCE.md)
### ๐Ÿ†“ ์˜๊ตฌ ๋ฌด๋ฃŒ โ€” $0, ์นด๋“œ ๋ถˆํ•„์š”
OpenCode Zen
OpenCode Zen
DeepSeek V4, Nemotron 3
ํ† ํฐ ์ œํ•œ ์—†์Œ
Kilo Code
Kilo Code
์ž๋™ ๋ผ์šฐํ„ฐ, Tencent Hy3
์˜๊ตฌ ๋ฌด๋ฃŒ
Requesty
Requesty
GPT-OSS 120B, Nemotron
์˜๊ตฌ ๋ฌด๋ฃŒ
SiliconFlow
SiliconFlow
DeepSeek V3.2 / R1
๋ฌด๋ฃŒ ํ‹ฐ์–ด
Z.AI GLM
Z.AI GLM
GLM-4.7 / 4.5-Flash
์˜๊ตฌ ๋ฌด๋ฃŒ
Baidu ERNIE
Baidu ERNIE
ERNIE 4.0
์˜๊ตฌ ๋ฌด๋ฃŒ
Qoder AI
Qoder AI
Qwen3-Max, Kimi-K2
๋ฌด์ œํ•œ ๋ฌด๋ฃŒ
Pollinations
Pollinations
GPT, Llama, Claude
ํ‚ค ๋ถˆํ•„์š”
Cloudflare AI
Cloudflare AI
50๊ฐœ ์ด์ƒ์˜ ๋ชจ๋ธ
์ผ์ผ ๋‰ด๋Ÿฐ 10K๊ฐœ
NVIDIA NIM
NVIDIA NIM
GLM, MiniMax
๋ฌด๋ฃŒ๋กœ ์•ฝ 40 RPM
Cerebras
Cerebras
GLM 4.7, GPT-OSS
์ผ์ผ ํ† ํฐ 1M๊ฐœ
OpenRouter
OpenRouter
:free ๋ชจ๋ธ
+$10 โ†’ ๋” ๋†’์€ RPM
๐Ÿ“– ์ „์ฒด ๋จธ์‹  ๋ฆฌ๋”๋ธ” ์นดํƒˆ๋กœ๊ทธ โ†’ [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## ๐Ÿ–ฅ๏ธ OmniRoute ์‹คํ–‰ ํ™˜๊ฒฝ โ€” ์–ด๋””์„œ๋‚˜
> ๊ฐ™์€ ์•ฑ, ๋‚ด ์ปดํ“จํ„ฐ, ๋‚ด ๊ทœ์น™. ์ „์—ญ npm ์„ค์น˜๋ถ€ํ„ฐ Termux๋ฅผ ํ†ตํ•œ **ํœด๋Œ€ํฐ** ์‹คํ–‰๊นŒ์ง€.
ํ”Œ๋žซํผ์„ค์น˜์ฃผ์š” ํŠน์ง•
๐Ÿ“ฆ npm (์ „์—ญ)npm install -g omniroute๋ช…๋ น์–ด ํ•˜๋‚˜๋กœ ๋ชจ๋“  OS์—์„œ ์‹คํ–‰
๐Ÿณ Dockerdocker run โ€ฆ diegosouzapw/omniroute๋ฉ€ํ‹ฐ ์•„ํ‚คํ…์ฒ˜ AMD64 + ARM64
๐Ÿ–ฅ๏ธ ๋ฐ์Šคํฌํ†ฑ (Electron)npm run electron:build๋„ค์ดํ‹ฐ๋ธŒ ์ฐฝ + ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด โ€” Windows / macOS / Linux
๐ŸŽฉ ๋ฉ”๋‰ด ๋ง‰๋Œ€ (OmniRouteTray)brew install --cask zoispag/tap/omniroute-tray์„œ๋ฒ„ ๊ฐ๋… ๋ฐ ์ž๋™ ์—…๋ฐ์ดํŠธ โ€” macOS
๐Ÿ’ช ARM๋„ค์ดํ‹ฐ๋ธŒ arm64Raspberry Pi, ARM ์„œ๋ฒ„, Apple Silicon
๐Ÿ“ฑ Android (Termux)pkg install nodejs && npx -y omnirouteํœด๋Œ€ํฐ์—์„œ ๋ฃจํŠธ ๊ถŒํ•œ ์—†์ด 24์‹œ๊ฐ„ ์—ฐ์ค‘๋ฌดํœด ์‹คํ–‰
๐Ÿ“ฒ PWA"ํ™ˆ ํ™”๋ฉด์— ์ถ”๊ฐ€"์ „์ฒด ํ™”๋ฉด, ์˜คํ”„๋ผ์ธ, ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„ค์น˜ ๊ฐ€๋Šฅ
๐Ÿงฉ OpenCode ํ”Œ๋Ÿฌ๊ทธ์ธ@omniroute/opencode-provider๋„ค์ดํ‹ฐ๋ธŒ OpenCode ํ†ตํ•ฉ
๐Ÿค– VS Code Copilot ChatOmniCopilot ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜๋„ค์ดํ‹ฐ๋ธŒ 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 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

## ๐Ÿ”’ ๋น„๊ณต๊ฐœ ๋ฐ ๋กœ์ปฌ ์šฐ์„ 
๋น„๊ณต๊ฐœ ๋ฐ ๋กœ์ปฌ ์šฐ์„  โ€” OmniRoute์˜ ๊ฒŒ์ดํŠธ์›จ์ด์™€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋Š” ๊ฐ ์š”์ฒญ์— ๋Œ€ํ•ด ์„ ํƒ๋œ ์—…์ŠคํŠธ๋ฆผ ์ œ๊ณต์—…์ฒด๋กœ ์ „์†ก๋˜๋ฉฐ, OmniRoute๋Š” ํ˜ธ์ŠคํŒ…๋œ ํ”„๋กฌํ”„ํŠธ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช…์€ AES-256-GCM์œผ๋กœ ์ €์žฅ ์‹œ ์•”ํ˜ธํ™”๋˜๋ฉฐ, ๋ณด์•ˆ ์ œ์–ด์—๋Š” API ํ‚ค ๋ฒ”์œ„ ์ง€์ •, IP ํ•„ํ„ฐ๋ง, ์š”์ฒญ ์†๋„ ์ œํ•œ, ํ”„๋กฌํ”„ํŠธ ์ธ์ ์…˜ ๋ฐฉ์–ด, ์—…์ŠคํŠธ๋ฆผ ํ—ค๋” ์ œ๊ฑฐ, ์„ ํƒ์  PII ์ˆ˜์ •, ์ •์ œ๋œ ์˜ค๋ฅ˜ ๋ฐ ๋กœ์ปฌ SQLite ๊ฐ์‚ฌ ์ถ”์ ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. OmniRoute๋Š” MIT ๋ผ์ด์„ ์Šค๋กœ ์ œ๊ณต๋˜๋ฉฐ ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“– [๊ถŒํ•œ ๋ถ€์—ฌ](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 CLI๋ฅผ ์‹œ์—ฐํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ„ฐ๋ฏธ๋„ โ€” omniroute providers list, omniroute combo list ๋ฐ omniroute health โ€” 86๊ฐœ ๋ช…๋ น์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ตœ์ƒ์œ„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ˆœํ™˜ ํ‘œ์‹œ: providers ยท oauth ยท keys ยท combo ยท nodes ยท models ยท cache ยท compression ยท cost ยท usage ยท quota ยท health ยท resilience ยท telemetry ยท logs ยท audit ยท mcp ยท a2a ยท cloud ยท memory ยท skills ยท eval ยท tunnel ยท backup ยท sync ยท webhooks ยท policy ยท pricing ยท translator ยท simulate โ€ฆ
### ๐Ÿค ์—์ด์ „ํŠธ ์—ฐ๊ฒฐ โ€” OmniRoute ์ž์ฒด๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค **MCP**, **A2A**, **REST API**, **์›นํ›…** ๋˜๋Š” **์›๊ฒฉ CLI**๋ฅผ ํ†ตํ•ด OmniRoute๋ฅผ ๋…ธ์ถœํ•˜๋ฉด, ์—ญ๋Ÿ‰์„ ๊ฐ–์ถ˜ ๋ชจ๋“  ์—์ด์ „ํŠธ(๋˜๋Š” ์ž์ฒด ์ฝ”๋“œ)๊ฐ€ ๋ผ์šฐํŒ…, ์ œ๊ณต์—…์ฒด, ์ฝค๋ณด, ์บ์‹œ, ์••์ถ•, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์ „์ฒด ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์ž์œจ์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ HTTP ์—”๋“œํฌ์ธํŠธ๋Š” `http://localhost:20128`์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
์ธํ„ฐํŽ˜์ด์Šค์—”๋“œํฌ์ธํŠธ / ๋ช…๋ น์–ด์šฉ๋„
๐Ÿงฐ MCP (stdio)omniroute --mcpClaude 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๋กœ ํ‘ธ์‹œ
๐Ÿ›ฐ๏ธ ์›๊ฒฉ CLIomniroute 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% ์ ˆ์•ฝ โ€” ์ž๋™์œผ๋กœ
### ๐Ÿ“– ์ž‘๋™ ๋ฐฉ์‹ โ€” ํŒŒ์ดํ”„๋ผ์ธ, ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์ ˆ๊ฐ ๊ณ„์‚ฐ OmniRoute ์••์ถ• ํŒŒ์ดํ”„๋ผ์ธ: 10,000ํ† ํฐ์˜ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด Session-Dedup, CCR, Lite, RTK, Responses Tool Output, Headroom, Relevance, Caveman, Aggressive, LLMLingua-2, Ultra, OmniGlyph ๋“ฑ ์กฐํ•ฉ ๊ฐ€๋Šฅํ•œ 12๊ฐœ ์—”์ง„์„ ํ†ต๊ณผํ•˜๋ฉฐ, ๋ฌธ์„œํ™”๋œ ์Šคํƒ ์˜ˆ์‹œ์—์„œ๋Š” ์•ฝ 1,080ํ† ํฐ์œผ๋กœ ๊ณต๊ธ‰์ž์—๊ฒŒ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐํ™”๋œ ์ฝ˜ํ…์ธ ๋Š” ๋ณด์กด ๊ฐ€๋“œ์™€ ๋‹จ๊ณ„๋ณ„ ์ถฉ์‹ค๋„ ๊ฒŒ์ดํŠธ๋กœ ๋ณดํ˜ธ๋˜๋ฉฐ, ๋ช…์‹œ์ ์ธ ์†์‹ค ์••์ถ• ๋˜๋Š” ์‹คํ—˜์  ๋ชจ๋“œ๋Š” ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์Šคํƒ ์กฐํ•ฉ์€ `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๊ฐœ ์—”์ง„ ์Šคํƒ ์—”์ง„์€ ํŒŒ์ดํ”„๋ผ์ธ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋˜๋ฉฐ, ๊ฐ ์กฐํ•ฉ์—์„œ ๊ฐœ๋ณ„์ ์œผ๋กœ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
#์—”์ง„๊ธฐ๋Šฅ
1Session-Dedup์—ฌ๋Ÿฌ ํ„ด์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ์ฝ˜ํ…์ธ  ์ œ๊ฑฐ(์ฝ˜ํ…์ธ  ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹, ํ„ด ๊ฐ„ ์ ์šฉ)
2CCR๋Œ€์šฉ๋Ÿ‰ ๋ธ”๋ก์„ ๊ฒ€์ƒ‰ ๋งˆ์ปค ๋’ค์— ๋ณด๊ด€ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ ๊ฐ€์ ธ์˜ด
3Lite๊ณต๋ฐฑ + ์ด๋ฏธ์ง€ URL ์ •๋ฆฌ(์ง€์—ฐ ์‹œ๊ฐ„์ด ์งง์€ ๊ธฐ์ค€ ๋ชจ๋“œ)
4RTK์Šค๋งˆํŠธ ๋„๊ตฌ ๊ฒฐ๊ณผ ํ•„ํ„ฐ๋ง, ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐ ์ž˜๋ผ๋‚ด๊ธฐ(๋ช…๋ น์–ด ์ธ์‹)
5Responses Tool Output์…ธ/ํŒจ์น˜/๊ฒ€์ƒ‰/๋นŒ๋“œ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ๋ฌด์†์‹ค ์šฐ์„  JSON + ๋ฒ”์œ„๊ฐ€ ์ œํ•œ๋œ ์ง„๋‹จ ์••์ถ•(Responses API)
6Headroom๋ฒค๋”๋ง๋œ GCF ์ฝ”๋ฑ์„ ํ†ตํ•œ JSON ๋ฐฐ์—ด์˜ ๋ฌด์†์‹ค ํ‘œ ํ˜•์‹ ์••์ถ•(~30%)
7Relevance๋งˆ์ง€๋ง‰ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์žฅ์„ ์ถ”์ถœํ•ด ์ ์ˆ˜ํ™”
8Caveman๊ทœ์น™ ๊ธฐ๋ฐ˜ ์‚ฐ๋ฌธ ์••์ถ•(์ถœ๋ ฅ์—์„œ ~65โ€“75%)
9Aggressive์š”์•ฝ + ์ด์ „ ํ„ด์˜ ์ ์ง„์  ๋…ธํ›„ํ™”
10LLMLingua-2MobileBERT ONNX๋ฅผ ํ†ตํ•œ ML ์˜๋ฏธ๋ก ์  ๊ฐ€์ง€์น˜๊ธฐ โ€” ์ฝ”๋“œ ์•ˆ์ „, ๋น„๋™๊ธฐ
11Ultra์„ ํƒ์  ์†Œํ˜• ๋ชจ๋ธ(SLM) ๊ณ„์ธต์„ ์‚ฌ์šฉํ•œ ํœด๋ฆฌ์Šคํ‹ฑ ํ† ํฐ ๊ฐ€์ง€์น˜๊ธฐ
12OmniGlyphAnthropic ์ง์ ‘ ์—ฐ๊ฒฐ์—์„œ ์ธก์ •๋œ Claude Fable 5๋ฅผ ์œ„ํ•œ ์‹คํ—˜์  ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ์ปจํ…์ŠคํŠธ ์ธ์ฝ”๋”ฉ. GPT 5.6 ํŠธ๋žœ์Šคํฌ๋จธ๋Š” ๊ณต๊ธ‰์ž ํ™•์ธ์ฆ์ด ์ œ๊ณต๋  ๋•Œ๊นŒ์ง€ ์‹คํŒจ ์‹œ ์ฐจ๋‹จ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. 4๊ฐ€์ง€ ์••์ถ• ํ”„๋กœํ•„(๊ธฐ๋ณธ๊ฐ’์ธ ๊ณต๊ฒฉ์ , ๊ท ํ˜•, ์ฝ”๋”ฉ ์•ˆ์ „, ํŒจ์Šค์Šค๋ฃจ) ์ œ๊ณต(๊ฐ€์žฅ ๊ณต๊ฒฉ์ ์ด๋ฉฐ ๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•จ)
์ฝ”๋“œ ๋ธ”๋ก, URL ๋ฐ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์™„๋ฒฝํ•˜๊ฒŒ **ํ•ญ์ƒ ๋ณด์กด๋ฉ๋‹ˆ๋‹ค**. **์›ํด๋ฆญ ํ”„๋ฆฌ์…‹**์œผ๋กœ ์—”์ง„์„ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“œ์ ˆ๊ฐ๋ฅ ๊ถŒ์žฅ ์šฉ๋„
๐Ÿชถ Lite~15%ํ•ญ์ƒ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’
๐Ÿชจ Standard (Caveman)~30%์ผ์ƒ์ ์ธ ์ฝ”๋”ฉ
โšก Aggressive~50%๋„๊ตฌ ์‚ฌ์šฉ์ด ๋งŽ์€ ์žฅ์‹œ๊ฐ„ ์„ธ์…˜
๐Ÿ”ฅ Ultra~75%์ตœ๋Œ€ ์ ˆ๊ฐ
๐Ÿงฐ RTK60โ€“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
Instagram ๋ฆด์Šค
๐ŸŽฌ #1 โ€” Instagram
nick_saraev โ€” ์กฐํšŒ์ˆ˜ 3,042,474ํšŒ
Instagram ๋ฆด์Šค โ€” theopenstack
๐ŸŽฌ #2 โ€” Instagram
theopenstack โ€” ์กฐํšŒ์ˆ˜ 692,419ํšŒ
TikTok โ€” milesreevesai
๐ŸŽฌ #3 โ€” TikTok
milesreevesai โ€” ์กฐํšŒ์ˆ˜ 620,400ํšŒ
YouTube โ€” Vaibhav Sisinty
๐ŸŽฌ #4 โ€” YouTube
Vaibhav Sisinty โ€” ์กฐํšŒ์ˆ˜ 391,109ํšŒ
Instagram ๋ฆด์Šค โ€” buildwithai.club
๐ŸŽฌ #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/CDGitHub 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๋‹จ๊ณ„: ์„ค์น˜ โ†’ ์—ฐ๊ฒฐ โ†’ ๊ตฌ์„ฑ
### ๐Ÿ”ง ์šด์˜ ๋ฐ ๋ฐฐํฌ
๋ฌธ์„œ์„ค๋ช…
Docker ๊ฐ€์ด๋“œDocker ์‹คํ–‰, Compose ํ”„๋กœํ•„, Caddy HTTPS, ํ„ฐ๋„, ์ด๋ฏธ์ง€ ํƒœ๊ทธ
Podman ๊ฐ€์ด๋“œQuadlet systemd ํ†ตํ•ฉ, podman-compose, SELinux
VM ๋ฐฐํฌ์ „์ฒด ๊ฐ€์ด๋“œ: VM + nginx + Cloudflare ์„ค์ •
Fly.io ๋ฐฐํฌ์˜๊ตฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Fly.io์— ๋ฐฐํฌ
Termux ๊ฐ€์ด๋“œTermux๋ฅผ ํ†ตํ•ด Android์—์„œ OmniRoute ์‹คํ–‰
PWA ๊ฐ€์ด๋“œํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์›น ์•ฑ ์„ค์น˜, ์บ์‹ฑ, ์•„ํ‚คํ…์ฒ˜
์ œ๊ฑฐ ๊ฐ€์ด๋“œ๋ชจ๋“  ์„ค์น˜ ๋ฐฉ์‹์—์„œ ๊น”๋”ํ•˜๊ฒŒ ์ œ๊ฑฐ
ํ™˜๊ฒฝ ๊ตฌ์„ฑ์ „์ฒด .env ๋ณ€์ˆ˜ ๋ฐ ์ฐธ์กฐ
### ๐Ÿง  ๊ธฐ๋Šฅ ๋ฐ ์•„ํ‚คํ…์ฒ˜
๋ฌธ์„œ์„ค๋ช…
์•„ํ‚คํ…์ฒ˜์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜, ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ฐ ๋‚ด๋ถ€ ๊ตฌ์กฐ
์••์ถ• ๊ฐ€์ด๋“œ7๊ฐ€์ง€ ์˜ต์…˜์˜ ํŒŒ์ดํ”„๋ผ์ธ: ๋„๊ธฐ / ๊ฒฝ๋Ÿ‰ / ํ‘œ์ค€ / ์ ๊ทน์  / ์šธํŠธ๋ผ / RTK / ์Šคํƒํ˜•
RTK ์••์ถ•๋ช…๋ น ์ถœ๋ ฅ ์••์ถ•, ํ•„ํ„ฐ, ์‹ ๋ขฐ, ๊ฒ€์ฆ, ์›์‹œ ์ถœ๋ ฅ ๋ณต๊ตฌ
์••์ถ• ์—”์ง„Caveman, RTK, ์Šคํƒํ˜• ํŒŒ์ดํ”„๋ผ์ธ, ๋Œ€์‹œ๋ณด๋“œ/API/MCP ์ธํ„ฐํŽ˜์ด์Šค
์••์ถ• ๊ทœ์น™ ํ˜•์‹Caveman ๋ฐ RTK ํ•„ํ„ฐ์šฉ JSON ๊ทœ์น™ ํŒฉ ์Šคํ‚ค๋งˆ
์••์ถ• ์–ธ์–ด ํŒฉ์–ธ์–ด ๊ฐ์ง€ ๋ฐ Caveman ๊ทœ์น™ ํŒฉ ์ž‘์„ฑ
๋ณต์›๋ ฅ ๊ฐ€์ด๋“œ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค, ์ฟจ๋‹ค์šด, ํ, ๋™์‹œ ์š”์ฒญ ํญ์ฃผ ๋ฐฉ์ง€, TLS ์Šคํ‘ธํ•‘
์ž๋™ ์ฝค๋ณด ์—”์ง„16๊ฐœ ์š”์†Œ ๊ธฐ๋ฐ˜ ์ ์ˆ˜ ์‚ฐ์ •, ๋ชจ๋“œ ํŒฉ, ์ž๊ฐ€ ๋ณต๊ตฌ
ํ”„๋ก์‹œ ๊ฐ€์ด๋“œ3๋‹จ๊ณ„ ํ”„๋ก์‹œ ์‹œ์Šคํ…œ, 1proxy ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ CRUD
๋ฌด๋ฃŒ ํ‹ฐ์–ดํ†ตํ•ฉ ๋””๋ ‰ํ„ฐ๋ฆฌ: ๋ฌธ์„œํ™”๋œ ๋ฐ˜๋ณต ์ œ๊ณต ํ’€ 35๊ฐœ / ์นดํƒˆ๋กœ๊ทธ์— ๋“ฑ๋ก๋œ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ํ•ญ๋ชฉ 489๊ฐœ
๊ธฐ๋Šฅ ๊ฐค๋Ÿฌ๋ฆฌ์Šคํฌ๋ฆฐ์ƒท๊ณผ ํ•จ๊ป˜ ์‚ดํŽด๋ณด๋Š” ์‹œ๊ฐ์  ๋Œ€์‹œ๋ณด๋“œ ๋‘˜๋Ÿฌ๋ณด๊ธฐ
์ฝ”๋“œ๋ฒ ์ด์Šค ๋ฌธ์„œ์ดˆ๋ณด์ž ์นœํ™”์ ์ธ ์ฝ”๋“œ๋ฒ ์ด์Šค ๋‘˜๋Ÿฌ๋ณด๊ธฐ
### ๐Ÿค– ํ”„๋กœํ† ์ฝœ ๋ฐ API
๋ฌธ์„œ์„ค๋ช…
API ์ฐธ์กฐ์˜ˆ์ œ๊ฐ€ ํฌํ•จ๋œ ๋ชจ๋“  ์—”๋“œํฌ์ธํŠธ
OpenAPI ๋ช…์„ธOpenAPI 3.0 ๋ช…์„ธ
MCP ์„œ๋ฒ„110๊ฐœ์˜ MCP ๋„๊ตฌ, IDE ๊ตฌ์„ฑ, Python/TS/Go ํด๋ผ์ด์–ธํŠธ
MCP ์„œ๋ฒ„ ๊ฐ€์ด๋“œMCP ์„ค์น˜, ์ „์†ก ๋ฐฉ์‹ ๋ฐ ๋„๊ตฌ ์ฐธ์กฐ
A2A ์„œ๋ฒ„JSON-RPC 2.0 ํ”„๋กœํ† ์ฝœ, ์Šคํ‚ฌ, ์ŠคํŠธ๋ฆฌ๋ฐ, ์ž‘์—… ๊ด€๋ฆฌ
A2A ์„œ๋ฒ„ ๊ฐ€์ด๋“œA2A ์—์ด์ „ํŠธ ์นด๋“œ, ์ž‘์—…, ์Šคํ‚ฌ ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ
### ๐Ÿ“‹ ํ”„๋กœ์ ํŠธ ๋ฐ ํ’ˆ์งˆ
๋ฌธ์„œ์„ค๋ช…
๊ธฐ์—ฌํ•˜๊ธฐ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์ง€์นจ
๋ธŒ๋žœ์น˜ ๋ฐ ๋ฆด๋ฆฌ์Šค ๋ชจ๋ธPR ๋Œ€์ƒ ์œ„์น˜(release/*)์™€ main ๋ฐ ํƒœ๊ทธ์˜ ์˜๋ฏธ
๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฒ„์ „๋ณ„ ์ „์ฒด ๋ฆด๋ฆฌ์Šค ๊ธฐ๋ก
๋ณด์•ˆ ์ •์ฑ…์ทจ์•ฝ์  ๋ณด๊ณ  ๋ฐ ๋ณด์•ˆ ๊ด€ํ–‰
i18n ๊ฐ€์ด๋“œ42๊ฐœ ์–ธ์–ด ์ง€์›, ๋ฒˆ์—ญ ์›Œํฌํ”Œ๋กœ, RTL
๋ฆด๋ฆฌ์Šค ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฆด๋ฆฌ์Šค ์ „ ๊ฒ€์ฆ ๋‹จ๊ณ„
์ปค๋ฒ„๋ฆฌ์ง€ ๊ณ„ํš์ถ”์ ๋˜๋Š” 5,100๊ฐœ ์ด์ƒ์˜ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์— ํฌํ•จ๋œ 39,000๊ฐœ ์ด์ƒ์˜ ์ •์  ํ…Œ์ŠคํŠธ ์„ ์–ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์ „๋žต

# โญ ์ฃผ์š” ๊ธฐ์—ฌ์ž > OmniRoute๋Š” ์—ด์ •์ ์ธ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์†๊ธธ๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ธฐ์—ฌ์ž๋“ค์€ ํ”„๋กœ์ ํŠธ์˜ ํ’ˆ์งˆ, ์•ˆ์ •์„ฑ ๋ฐ ๋„๋‹ฌ ๋ฒ”์œ„์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํƒ์›”ํ•œ ๊ธฐ์—ฌ๋ฅผ ํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค. **๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.** ### ๋ณ‘ํ•ฉ๋œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๊ธฐ์ค€ ์™ธ๋ถ€ ๊ธฐ์—ฌ์ž
์ˆœ์œ„๊ธฐ์—ฌ์ž๋ณ‘ํ•ฉ๋œ PR~๋ณ€๊ฒฝ๋œ ์ค„ ์ˆ˜
1backryun190227,977
2oyi77180407,678
3rdself14580,663
4JxnLexn128387,049
5KooshaPari101125,747
6herjarsa88230,872
7RaviTharuma7955,106
8maxmad64bis69394,715
9artickc5933,260
10HouMinXi5147,334
10chirag127515,153
12xz-dev50245,976
13hartmark4752,185
14rqzbeh39143,181
15dhaern3419,559
16Dingding-leo331,986
17NomenAK3213,854
18MumuTW3016,953
19benzntech2911,641
20pacocartones249,331
20Prudhvivuda246,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
backryun

๐Ÿฅ‡ GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 220๊ฐœ
Paijo
Paijo

๐Ÿฅˆ GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 219๊ฐœ
Randi
Randi

๐Ÿฅ‰ GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 108๊ฐœ
Ravi Tharuma
Ravi Tharuma

๐Ÿ… GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 81๊ฐœ
Chris
Chris

๐Ÿ… GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 70๊ฐœ
Markus Hartung
Markus Hartung

๐Ÿ… GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 69๊ฐœ ยท ๊ณต๋™ 6์œ„
Dizzle
Dizzle

๐Ÿ… GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 69๊ฐœ ยท ๊ณต๋™ 6์œ„
Jan Leon
Jan Leon

๐Ÿ… GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 64๊ฐœ
zenobit
zenobit

๐Ÿ… GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 62๊ฐœ
Bob.Hou
Bob.Hou

๐Ÿ… GitHub ๊ธฐ์ค€ ์ปค๋ฐ‹ 51๊ฐœ ยท ๊ณต๋™ 10์œ„
Xiangzhe
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๋ฅผ ํ›„์›ํ•ด ์ฃผ์‹œ๋Š” ๋ถ„๋“ค๊ป˜ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ›„์›์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฌด๋ฃŒ๋กœ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉฐ ๊ณ„์† ๋ฐœ์ „ํ•˜๋Š” ๋ฐ ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค.
Andrew
Andrew

๐Ÿ’› ํ˜„์žฌ ์›”๊ฐ„ ์Šคํฐ์„œ
Vlad I
Vlad I

๐Ÿ’› ํ˜„์žฌ ์›”๊ฐ„ ์Šคํฐ์„œ
Paco Cartones
Paco Cartones

๐Ÿ’› ํ˜„์žฌ ์ผํšŒ์„ฑ ์Šคํฐ์„œ
Professor Igor Morais Vasconcelos
Prof. Igor Morais

๐Ÿ’› ์ด์ „ ์ผํšŒ์„ฑ ํ›„์›์ž
longtao
longtao

๐Ÿ’› ์ด์ „ ์ผํšŒ์„ฑ ํ›„์›์ž
โ€ฆ ๊ทธ๋ฆฌ๊ณ  ๋น„๊ณต๊ฐœ๋กœ ํ›„์›ํ•˜๊ธฐ๋ฅผ ์›ํ•˜์‹œ๋Š” ๋‹ค๋ฅธ ๋ถ„๋“ค๊ป˜๋„ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ’› ๊ณต๊ฐœ GitHub Sponsors ๋ชฉ๋ก์€ 2026-08-24์— ๋‹ค์‹œ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GitHub์˜ activeOnly ์ƒํƒœ์— ๋”ฐ๋ผ ์œ„์˜ ํ˜„์žฌ ํ›„์›์ž ํ‘œ์‹œ๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ด์ „์— ๊ณต๊ฐœ๋œ ์ผํšŒ์„ฑ ํ›„์›์ž์—๊ฒŒ๋„ ๊ณ„์† ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•˜๋ฉฐ, ๋น„๊ณต๊ฐœ ์Šคํฐ์„œ๋Š” ์ต๋ช…์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๐Ÿ’– ์Šคํฐ์„œ๊ฐ€ ๋˜์–ด ์ฃผ์„ธ์š” โ†’ โ€” ๋ชจ๋“  ํ›„์›๊ธˆ์€ OmniRoute๊ฐ€ ๋ฌด๋ฃŒ๋กœ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

## ๐Ÿ‘ฅ 600๋ช… ์ด์ƒ์˜ ๊ธฐ์—ฌ์ž
[![๊ธฐ์—ฌ์ž](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=639&columns=20&anon=1)](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 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์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
9router26,161์ด ํฌํฌ์˜ ๊ธฐ๋ฐ˜์ด ๋œ ์›๋ณธ ํ”„๋กœ์ ํŠธ๋กœ, ์—ฌ๊ธฐ์„œ๋Š” ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ API๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  TypeScript๋กœ ์™„์ „ํžˆ ์žฌ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
CLIProxyAPI48,497์ด JavaScript / TypeScript ํฌํŠธ์— ์˜๊ฐ์„ ์ค€ Go ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค.
LiteLLM57,100๊ณต๊ฐœ ๊ฐ€๊ฒฉ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ๋น„์šฉ ์ถ”์  ๋™๊ธฐํ™”์— ์‚ฌ์šฉ๋˜๊ณ , ์ œ๊ณต์ž ์ •๊ทœํ™” ๋ชจ๋ธ์ด ๋ผ์šฐํŒ… ์„ค๊ณ„์— ์ฐธ๊ณ ๋œ AI ๊ฒŒ์ดํŠธ์›จ์ด์ž…๋‹ˆ๋‹ค.
codex-chatgpt-web1,410๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜, ์‘๋‹ต ํ”„๋ ˆ์ด๋ฐ, ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ์›น ๊ฒ€์ƒ‰ ์–ด๋Œ‘ํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ, ๋ฒค๋”๋ง๋œ ChatGPT Web โ†’ Codex Responses ๋ธŒ๋ฆฌ์ง€์— ๋งž๊ฒŒ ์กฐ์ •๋œ MIT ์†Œ์Šค์ž…๋‹ˆ๋‹ค.
free-claude-code48,112์ŠคํŠธ๋ฆผ ๋ณต๊ตฌ, ๋น„์‚ฌ๊ณ  ๋ณ„์นญ, ๋Œ€์ฒด ์›น ๊ฒ€์ƒ‰, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„ ์ œํ•œ, ๋กœ๊ทธ ๋ฏผ๊ฐ ์ •๋ณด ์ œ๊ฑฐ ๋ฐ ๊ฐ•ํ™”๋œ ๋Ÿฐ์ฒ˜ ํ๋ฆ„์œผ๋กœ ์ด์‹๋œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.
composer-api322๋„ค์ดํ‹ฐ๋ธŒ Cursor ์‹คํ–‰๊ธฐ์— ๋งž๊ฒŒ ์กฐ์ •๋œ Cursor Composer์˜ ๋„๊ตฌ ์„ ํƒ, ์ถœ๋ ฅ ์ œ์•ฝ ๋ฐ ๋„๊ตฌ ์ปค๋ฐ‹ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.
codex-multi-auth457Codex OAuth ์žฌ์ธ์ฆ์œผ๋กœ ์ด์‹๋œ ์‹ ๊ทœ ๋กœ๊ทธ์ธ ๋ฐ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์ˆœํ™˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.
opencode-anthropic-auth510Claude Code ํ˜ธํ™˜ ๋ณ€ํ™˜ ๊ธฐ๋ณธ๊ฐ’๊ณผ ๊ฒฐ์ œ ํ—ค๋” ๋™์ž‘์„ OmniRoute์˜ ๊ตฌ์„ฑ ๊ธฐ๋ฐ˜ ๋ธŒ๋ฆฌ์ง€์— ์ผ๋ฐ˜ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
grok2api-merged2์ด ํ”„๋กœ์ ํŠธ์˜ Grok ๋ชจ๋ธ ๋งคํ•‘, ๊ฐ€์งœ TypeError Statsig ์ƒ์„ฑ๊ธฐ, ์š”์ฒญ ๋ฐ ๊ธฐ๊ธฐ ๊ธฐ๋ณธ๊ฐ’, NDJSON ์‘๋‹ต ํ”„๋กœ์„ธ์„œ๊ฐ€ OmniRoute์˜ Grok Web ์‹คํ–‰๊ธฐ์— ์‹ค์งˆ์ ์œผ๋กœ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
TQZHR/grok2api705grok2api-merged์˜ ์ฃผ์š” ์ „์ด์  ์ฝ”๋“œ ์ถœ์ฒ˜๋กœ, ํ•ด๋‹น ๋ชจ๋ธ, ํ—ค๋”, ํŽ˜์ด๋กœ๋“œ, Statsig ๋ฐ ํ”„๋กœ์„ธ์„œ ๊ตฌํ˜„์€ Grok Web ๊ณ„๋ณด์— ๋ณด์กด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
chenyme/grok2api7,520TQZHR ๋ฐ grok2api-merged๋ฅผ ๊ฑฐ์ณ ์ „์Šน๋œ Grok ํŽ˜์ด๋กœ๋“œ ๋ฐ ๊ธฐ๊ธฐ ๊ธฐ๋ณธ๊ฐ’, Statsig ์ƒ์„ฑ๊ธฐ, result.response ํ”„๋กœ์„ธ์„œ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” MIT ์†Œ์Šค์ž…๋‹ˆ๋‹ค.
grok2api-pro27grok2api-merged๊ฐ€ ํ”„๋ก์‹œ ํ’€ ๊ณ„์ธต์˜ ์ถœ์ฒ˜๋กœ ๋ช…์‹œํ•œ ์ „์ด์  ์†Œ์Šค์ž…๋‹ˆ๋‹ค. OmniRoute๋Š” ํ•ด๋‹น ๊ณ„๋ณด ๊ณ ์ง€๋ฅผ ์œ ์ง€ํ•˜์ง€๋งŒ ๋ฒ”์œ„๊ฐ€ ์ œํ•œ๋œ Grok Web ์‹คํ–‰๊ธฐ์— ํ”„๋ก์‹œ ํ’€์„ ์ด์‹ํ–ˆ๋‹ค๊ณ  ์ฃผ์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
GrokProxy50์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹์˜ Grok ํ”„๋ก์‹œ์™€ result.response.token ์ŠคํŠธ๋ฆฌ๋ฐ ํŒจํ„ด์ด OmniRoute์˜ Grok Web ์ „์†ก ๊ณ„์ธต์— ์ฐธ๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
GrokBridge5์ดˆ๊ธฐ Grok Web ๊ตฌํ˜„์—์„œ ์ด ํ”„๋กœ์ ํŠธ์˜ HTTP/๋ธŒ๋ผ์šฐ์ € ์—…์ŠคํŠธ๋ฆผ ์„ค๊ณ„๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง์ ‘ HTTP ๊ฒฝ๋กœ๋Š” GrokProxy์—์„œ ํŒŒ์ƒ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ด์‹ํ–ˆ๋‹ค๊ณ  ์ฃผ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
grok-web-api14์ด ํ”„๋กœ์ ํŠธ์˜ Rust ChatOptions ๋ฐ ์‘๋‹ต ๋ด‰ํˆฌ ์Šคํ‚ค๋งˆ๊ฐ€ OmniRoute์˜ TypeScript Grok ์š”์ฒญ ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์‘๋‹ต ํƒ€์ž… ์„ค๊ณ„์— ์ฐธ๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
### ๐Ÿ—œ๏ธ ์ปจํ…์ŠคํŠธ ๋ฐ ํ† ํฐ ์••์ถ• โ€” ์—”์ง„
ํ”„๋กœ์ ํŠธโญOmniRoute์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
Caveman100,538ํ™”์ œ๊ฐ€ ๋œ "๋งŽ์€ ํ† ํฐ ์™œ ์“ฐ๋‚˜ ์ ์€ ํ† ํฐ์œผ๋กœ ๋˜๋Š”๋ฐ" ํ”„๋กœ์ ํŠธ โ€” ์›์‹œ์ธ ๋งํˆฌ ์ฒ ํ•™์€ ๋‹น์‚ฌ์˜ ํ‘œ์ค€ ์••์ถ• ๋ชจ๋“œ์™€ 30๊ฐœ ์ด์ƒ์˜ ๊ตฐ๋”๋”๊ธฐ ์ œ๊ฑฐ/์ถ•์•ฝ ๊ทœ์น™์˜ ๊ธฐ๋ฐ˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
RTK โ€“ Rust Token Killer77,185๊ณ ์„ฑ๋Šฅ ๋ช…๋ น ์ถœ๋ ฅ ์••์ถ• โ€” ๋‹น์‚ฌ์˜ RTK ์—”์ง„, JSON ํ•„ํ„ฐ DSL, ์›์‹œ ์ถœ๋ ฅ ๋ณต๊ตฌ ๋ฐ RTK โ†’ Caveman ๋‹ค๋‹จ๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
headroom67,310๊ฐ€์—ญ์  ์ปจํ…์ŠคํŠธ ์••์ถ•(SmartCrusher) โ€” ๋‹น์‚ฌ์˜ headroom ์—”์ง„๊ณผ ccr ๊ฒ€์ƒ‰ ๋งˆ์ปค ํŒจํ„ด์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
LLMLingua6,598ํ”„๋กฌํ”„ํŠธ ์••์ถ• ์—ฐ๊ตฌ(LLMLingua / LLMLingua-2) โ€” ๋‹น์‚ฌ์˜ ๋น„๋™๊ธฐ์‹, ์ฝ”๋“œ ์•ˆ์ „์„ฑ ๋ณด์žฅ, ์žฅ์•  ์‹œ ๊ฐœ๋ฐฉํ˜• llmlingua ์—”์ง„์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
llmlingua-2-js31๋‹น์‚ฌ์˜ LLMLingua ์—”์ง„์—์„œ ์›Œ์ปค ์Šค๋ ˆ๋“œ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” JS/ONNX ํฌํŠธ(MobileBERT / XLM-RoBERTa)์ž…๋‹ˆ๋‹ค.
Troglodita40๋ธŒ๋ผ์งˆ ํฌ๋ฅดํˆฌ๊ฐˆ์–ด ํ† ํฐ ์••์ถ• โ€” ๋ธŒ๋ผ์งˆ ํฌ๋ฅดํˆฌ๊ฐˆ์–ด ๋ฌธ๋ฒ•์— ๋งž์ถฐ ์กฐ์ •๋œ ๋™์–ด ๋ฐ˜๋ณต ์ถ•์†Œ ๋ฐ ๊ตฐ๋”๋”๊ธฐ ์ œ๊ฑฐ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋‹น์‚ฌ์˜ pt-BR ์–ธ์–ด ํŒฉ์„ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค.
ponytail108,957ํ™”์ œ๊ฐ€ ๋œ "๊ฒŒ์œผ๋ฅธ ์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž" YAGNI ์ฝ”๋” ์Šคํ‚ฌ โ€” ๋‹น์‚ฌ์˜ less-code ์ถœ๋ ฅ ์Šคํƒ€์ผ์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ž‘๋™ํ•˜๋Š” ์ตœ์†Œ ๋ณ€๊ฒฝ์œผ๋กœ ์œ ๋„ํ•˜์—ฌ _์ƒ์„ฑ๋˜๋Š”_ ์ฝ”๋“œ๋ฅผ ์ค„์ด๋Š” ๋ฐฉ์‹์œผ๋กœ, Caveman์˜ ๊ฐ„๊ฒฐํ•œ ์‚ฐ๋ฌธ๊ณผ ์ถœ๋ ฅ ์ธก๋ฉด์—์„œ ์ง์„ ์ด๋ฃน๋‹ˆ๋‹ค.
i-have-adhd23,526ํ–‰๋™ ์šฐ์„ ์˜ ADHD ์นœํ™”์  ์‘๋‹ต ์Šคํƒ€์ผ์„ 5๊ฐœ ์–ธ์–ด์— ๊ฑธ์นœ OmniRoute์˜ ๊ฐ„๊ฒฐํ•œ ์ถœ๋ ฅ ์Šคํƒ€์ผ๋กœ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
### ๐Ÿงฉ ์••์ถ• ํ˜•์‹, ํ† ํฐ ์—ฐ๊ตฌ ๋ฐ ์ฝ”๋“œ ์ธ์‹ ๋„๊ตฌ
ํ”„๋กœ์ ํŠธโญOmniRoute์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
TOON25,233ํ† ํฐ ์ง€ํ–ฅ ๊ฐ์ฒด ํ‘œ๊ธฐ๋ฒ• โ€” ์—ด ๊ธฐ๋ฐ˜์˜ ํ—ค๋” ๋ฐ ํ–‰ ๋ชจ๋ธ์ด ๋‹น์‚ฌ์˜ ํ‘œ ํ˜•์‹ ์••์ถ• ๋‹จ๊ณ„๋ฅผ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
GCF โ€“ Graph Compact Format41๊ฐ„๊ฒฐํ•œ ๊ทธ๋ž˜ํ”„ ํ˜•์‹๊ณผ ๋ฒ”์šฉ ํ”„๋กœํ•„ ์„ค๊ณ„๋Š” OmniRoute์˜ ํ‘œ ํ˜•์‹ ์••์ถ• ๋ฐ Headroom ์ฝ”๋ฑ ํ˜•์‹์— ์˜ํ–ฅ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
gcf-typescript4Headroom ๋ฒ”์šฉ ํ”„๋กœํ•„ ์ฝ”๋ฑ์œผ๋กœ ์ง์ ‘ ๋ฒค๋”๋งํ•˜๊ณ  ํ™•์žฅํ•œ MIT TypeScript ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค.
token-optimizer-mcp494Brotli/SQLite ์บ์‹œ + ์„ธ์…˜๋ณ„ ์ปจํ…์ŠคํŠธ ๋ธํƒ€ โ€” ๋‹น์‚ฌ์˜ session-dedup ์—”์ง„์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
token-savior1,122Bash ์ถœ๋ ฅ ์••์ถ• + MCP ํ”„๋กœํ•„ โ€” ๋‹น์‚ฌ์˜ ์••์ถ• ์ค‘๋‹จ ์›์น™๊ณผ MCP ๋„๊ตฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์ถ•์†Œ์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
token-saver138์‹คํŒจ๋ฅผ ๊ณ ๋ คํ•œ ์ค‘๋‹จ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ํŒŒ์ผ ์œ ํ˜•๋ณ„ ์ฝ˜ํ…์ธ  ์ธ์‹ ์ถœ๋ ฅ ์••์ถ• โ€” ๋‹น์‚ฌ์˜ ์œ ํ˜•๋ณ„ ๋””์ŠคํŒจ์น˜์™€ ์ตœ์†Œ ์ด๋“ ๋ฏธ๋‹ฌ ์‹œ ๊ฑด๋„ˆ๋›ฐ๊ธฐ ๋ฐฉ์‹์„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.
token-optimizer1,951"์œ ๋ น ํ† ํฐ์„ ์ฐพ์•„๋ผ" โ€” ์˜คํ”„๋กœ๋”ฉ + ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•œ ํ•ธ๋“ค ํŒจํ„ด์ด ๋‹น์‚ฌ์˜ CCR ์˜คํ”„๋กœ๋”ฉ ๊ตฌ์ƒ์— ์˜ํ–ฅ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
TokenMizer28๋‹น์‚ฌ์˜ ์„ธ์…˜ ์ค‘๋ณต ์ œ๊ฑฐ ์„ค๊ณ„์— ์˜ํ–ฅ์„ ์ค€ ์„ธ์…˜ ๊ทธ๋ž˜ํ”„ + ํ„ด ๊ฐ„ ์ค„ ์ค‘๋ณต ์ œ๊ฑฐ ์ฒญ์‚ฌ์ง„์ž…๋‹ˆ๋‹ค.
OmniCompress3Rust ์—ด ๊ธฐ๋ฐ˜ JSON + ์ฝ˜ํ…์ธ  ์ฃผ์†Œ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ + ๋ฉ”์‹œ์ง€ ๊ฐ„ ์ค‘๋ณต ์ œ๊ฑฐ โ€” ๋‹น์‚ฌ์˜ headroom/ccr/session-dedup ์—”์ง„ ์„ค๊ณ„์™€ ์บ์‹œ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๋Š” "์••์ถ•๋œ ํ˜•ํƒœ๋Š” ์œ„์น˜์— ๋…๋ฆฝ์ ์ด๋‹ค"๋ผ๋Š” ๋ถˆ๋ณ€ ์กฐ๊ฑด์„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.
mcp-compressor113MCP ๋„๊ตฌ ์Šคํ‚ค๋งˆ/์„ค๋ช… ์••์ถ• โ€” ๋‹น์‚ฌ์˜ MCP ๋„๊ตฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์นด๋””๋„๋ฆฌํ‹ฐ ์ถ•์†Œ์— ์˜ํ–ฅ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
RepoMapper197Aider ์Šคํƒ€์ผ ์ €์žฅ์†Œ ๋งต ์ˆœ์œ„ ์ง€์ • โ€” ๋‹น์‚ฌ์˜ ์ €์žฅ์†Œ ๋งต / ๊ฒ€์ƒ‰ ์ˆœ์œ„ ์ง€์ • ํƒ์ƒ‰์— ์˜ํ–ฅ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
quiet-shell-mcp4MCP๋ฅผ ํ†ตํ•œ ์„ ์–ธ์  ์…ธ ์ถœ๋ ฅ ์ถ•์†Œ โ€” ๋‹น์‚ฌ์˜ ์„ ์–ธ์  bash ์ถœ๋ ฅ ์••์ถ•์„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.
ts-morph6,162TypeScript Compiler API ๋„๊ตฌ ํ‚คํŠธ โ€” ๋ฌธ์ž์—ด, ํ…œํ”Œ๋ฆฟ ๋ฐ ์ •๊ทœ์‹ ๋ฆฌํ„ฐ๋Ÿด์„ ๋ณด์กดํ•˜๋Š” ๋‹น์‚ฌ์˜ ํŒŒ์„œ ๊ธฐ๋ฐ˜ ์ฃผ์„ ์ œ๊ฑฐ ๊ธฐ๋Šฅ์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
### ๐Ÿง  ๋ฉ”๋ชจ๋ฆฌ ๋ฐ RAG
ํ”„๋กœ์ ํŠธโญOmniRoute์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
Mem063,902๋ฒ”์šฉ ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต โ€” ํ”„๋ก์‹œ๋ฅผ ์“ฐ๊ธฐ/์ฝ๊ธฐ ๊ฒฝ๊ณ„๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ์ด ๋‹น์‚ฌ์˜ ๋ฉ”๋ชจ๋ฆฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
Letta (MemGPT)24,382๊ณ„์ธตํ˜• ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ–์ถ˜ ์ƒํƒœ ์œ ์ง€ํ˜• ์—์ด์ „ํŠธ โ€” ๋‹น์‚ฌ์˜ Context Control & Recovery (CCR) ๊ณ„์ธตํ˜• ๋ชจ๋ธ์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
WFGY1,781๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” 16๊ฐ€์ง€ RAG/LLM ์‹คํŒจ ๋ชจ๋“œ์— ๋Œ€ํ•œ ProblemMap ๋ถ„๋ฅ˜ ์ฒด๊ณ„ โ€” ๋‹น์‚ฌ์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€์ด๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ณตํ†ต ์šฉ์–ด ์ฒด๊ณ„์ž…๋‹ˆ๋‹ค.
### ๐Ÿ›ฐ๏ธ ํŠธ๋ž˜ํ”ฝ ๊ฒ€์‚ฌ, MITM ๋ฐ ํˆฌ๋ช… ํ”„๋ก์‹œ
ํ”„๋กœ์ ํŠธโญOmniRoute์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
llm-interceptor66์ฝ”๋”ฉ ์–ด์‹œ์Šคํ„ดํŠธ โ†” LLM ํŠธ๋ž˜ํ”ฝ์˜ MITM ๊ฐ€๋กœ์ฑ„๊ธฐ/๋ถ„์„์€ ์ดˆ๊ธฐ Traffic Inspector ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜๋ฆฝ์— ์ฐธ๊ณ ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— ํŒŒ์ƒ๋œ ๋„ค ๊ฐ€์ง€ ๋ชจ๋“ˆ์ธ SSE ๋ณ‘ํ•ฉ, ๋Œ€ํ™” ์ •๊ทœํ™”, ๋น„๋ฐ€ ์ •๋ณด ๋งˆ์Šคํ‚น ๋ฐ ํ—ค๋” ์ •๋ฆฌ๋Š” ๊ณต๊ฐœ ํ”„๋กœํ† ์ฝœ ํ‘œ์ค€์— ๊ธฐ๋ฐ˜ํ•œ ๋…๋ฆฝ์ ์ธ ํด๋ฆฐ๋ฃธ ๊ตฌํ˜„์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํ˜ธ์ŠคํŠธ ํŒจ์Šค์Šค๋ฃจ ํ‘œ๋ฉด(passthrough.ts ๋ฐ _internal/bypass.cjs)์€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ถ„๋ฅ˜๋œ OmniRoute ๋‚ด๋ถ€ ๊ตฌํ˜„์œผ๋กœ ์œ ์ง€๋˜๋ฉฐ, ํ•ด๋‹น ๋Œ€์ฒด ์ž‘์—…์˜ ์ผ๋ถ€๋กœ ์žฌ์ž‘์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
ProxyBridge5,995ํ”„๋กœ์„ธ์Šค๋ณ„ ํˆฌ๋ช… ํ”„๋ก์‹œ ๋ผ์šฐํŒ… โ€” ๋‹น์‚ฌ์˜ ์ถฉ๋Œ ์•ˆ์ „ MITM ํ•ด์ œ, ์†Œ์ผ“ ์œ ํœด ์‹œ๊ฐ„ ์ดˆ๊ณผ, /proc ํ”„๋กœ์„ธ์Šค ๊ท€์† ๋ฐ TPROXY ์บก์ฒ˜์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
### ๐Ÿ“š ๋ชจ๋ธ ๋ฐ์ดํ„ฐ, ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ ๋ฐ UI
ํ”„๋กœ์ ํŠธโญOmniRoute์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
models.dev6,555AI ๋ชจ๋ธ ์‚ฌ์–‘, ๊ฐ€๊ฒฉ ๋ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค โ€” ๋‹น์‚ฌ์˜ ๋ชจ๋ธ ์นดํƒˆ๋กœ๊ทธ์— ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
React Flow / xyflow38,108๋‹น์‚ฌ์˜ ์‹ค์‹œ๊ฐ„ Compression Studio ๋ฐ Combo/Routing Studio๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ๊ทธ๋ž˜ํ”„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
LangGraph40,314LangGraph Studio์˜ ์‹ค์‹œ๊ฐ„ ์›Œํฌํ”Œ๋กœ ๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™”๋Š” ๋‹น์‚ฌ Studios์˜ ์‹ค์‹œ๊ฐ„ ์บ์Šค์ผ€์ด๋“œ ๋ณด๊ธฐ์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
Langfuse33,592ํŠธ๋ ˆ์ด์Šค โ†’ ์ŠคํŒฌ โ†’ ์ƒ์„ฑ์œผ๋กœ ์ด์–ด์ง€๋Š” ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ ๋ชจ๋ธ์€ ๋‹น์‚ฌ์˜ Compression Studio ์›Œํ„ฐํด์„ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
Kiali3,631Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ โ€” Routing/Combo Studio์˜ ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ ๋ฐฐ์ง€ ๋ฐ ์˜ค๋ฅ˜ ์—์ง€ ์‹œ๊ฐํ™”์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
lobe-icons2,428๋‹น์‚ฌ ๋Œ€์‹œ๋ณด๋“œ ์ „๋ฐ˜์—์„œ ๊ณต๊ธ‰์ž ์•„์ด์ฝ˜์„ ๋ Œ๋”๋งํ•˜๋Š” AI/LLM ๋ธŒ๋žœ๋“œ ๋กœ๊ณ ์ž…๋‹ˆ๋‹ค.
flag-icons12,354README ์–ธ์–ด ์„ ํƒ๊ธฐ์— ์‚ฌ์šฉ๋˜๋Š” MIT ๋ผ์ด์„ ์Šค SVG ๊ตญ๊ธฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
### ๐Ÿ›ก๏ธ ๋ณด์•ˆ
ํ”„๋กœ์ ํŠธโญOmniRoute์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
awesome-secure-defaults721๋‹น์‚ฌ์˜ ๋ณด์•ˆ ์„ ํƒ(Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink)์— ์ง€์นจ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์•ˆ์ „ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์—„์„ ๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
### ๐Ÿงญ ๋ณด์™„ ๋„๊ตฌ
ํ”„๋กœ์ ํŠธโญOmniRoute์— ์˜๊ฐ์„ ์ค€ ๋ฐฉ์‹
ClawRouter6,564์š”์ฒญ ์ค‘๋ณต ์ œ๊ฑฐ, ๋น„์ƒ์šฉ ๋ฌด๋น„์šฉ ํด๋ฐฑ, ํ”Œ๋Ÿฌ๊ทธํ˜• Auto-Combo ์ „๋žต ๋ฐ ๋‹ค๊ตญ์–ด ์˜๋„ ๋ถ„๋ฅ˜์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
Antigravity-Manager30,652๊ณ„์ • ์ธ์‹ ๋ชจ๋ธ ์žฌ๋งคํ•‘, ์‹คํ–‰ ํŒŒ์ผ ๊ฒฝ๋กœ ๊ฒ€์ฆ ๋ฐ ์š”๊ธˆ์ œ ๋ ˆ์ด๋ธ” ๋™์ž‘์€ OmniRoute์˜ Antigravity ๋Ÿฐํƒ€์ž„์— ์ฐธ๊ณ ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
vscode-antigravity-cockpit4,817๊ฐ„๊ฒฐํ•œ ํ• ๋‹น๋Ÿ‰ ์ดˆ๊ธฐํ™” ์นด์šดํŠธ๋‹ค์šด ํ˜•์‹์€ OmniRoute์˜ ํ•ด๋‹น ๊ณต๊ธ‰์ž ํ•œ๋„ ํ‘œ์‹œ์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
AionUi32,230ACP ํ†ตํ•ฉ์€ OmniRoute์˜ ์„ค์น˜๋œ CLI ์—์ด์ „ํŠธ ์ž๋™ ๊ฐ์ง€์— ์˜๊ฐ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
CodexBar20,507Grok Build ํ• ๋‹น๋Ÿ‰ ํ‘œ๋ฉด์„ ์‹๋ณ„ํ–ˆ์œผ๋ฉฐ, ์ดํ›„ OmniRoute๊ฐ€ ์‹ค์ œ ์™€์ด์–ด ํ˜•์‹์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฒ€์ฆํ•˜๊ณ  ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
## ๐Ÿ“„ ๋ผ์ด์„ ์Šค MIT ๋ผ์ด์„ ์Šค - ์ž์„ธํ•œ ๋‚ด์šฉ์€ [LICENSE](LICENSE)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ---
**[โฌ† ๋งจ ์œ„๋กœ ๋Œ์•„๊ฐ€๊ธฐ](#-omniroute)** ยท ์˜คํ”ˆ ์†Œ์Šค AI ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•ด โค๏ธ๋ฅผ ๋‹ด์•„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. OmniRoute v3.8.51 ยท Node โ‰ฅ22.22.2 ยท MIT ๋ผ์ด์„ ์Šค ยท omniroute.online