1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
226 KiB
README (ไทย)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
💰 โทเค็นฟรี ~1.47B / เดือน
การรวมแพ็กเกจฟรีด้วยตนเองเป็นเรื่องยุ่งยาก — SDK หลายสิบรายการ ขีดจำกัดอัตราการใช้งานหลายสิบแบบ และคุณไม่รู้เลยว่าจริง ๆ แล้วมีโควตาเท่าไร OmniRoute รวบรวม รายการแพ็กเกจฟรี 452 รายการในคีย์พูลแบบต่อเนื่อง 34 คีย์ และคำนวณตัวเลขโทเค็นหลักจาก 16 พูลที่เผยแพร่งบประมาณรายเดือนเป็นค่าบวก รวมกับขีดจำกัด Groq แยกตามโมเดลอีกห้ารายการ โดยขจัดการนับซ้ำตามพูลที่ใช้ร่วมกัน โควตาที่เปิดให้ใช้ได้หลังจากผ่านการตรวจสอบตัวตนตามภูมิภาคเท่านั้น (ปัจจุบันคือ ModelScope) จะแสดงแยกต่างหาก โดยมีอีก +~6M ที่ต้องผ่านการยืนยันตัวตนตามภูมิภาค และจะไม่ถูกนำมารวมในตัวเลขหลัก ผลลัพธ์ยังคงแสดงอยู่บนแดชบอร์ด (
/dashboard/free-tiers)
สรุปแบบเคลื่อนไหวของหน้า
/dashboard/free-tiersแบบสด ดูระเบียบวิธีฉบับเต็ม (การขจัดการนับพูลซ้ำ ระดับเครดิต ข้อกำหนดของผู้ให้บริการ): docs/reference/FREE_TIERS.md.ตัวเลขเหล่านี้ได้รับการตรวจสอบใหม่ทุกสองสัปดาห์โดยเทียบกับแค็ตตาล็อกแบบสด และ สามารถเปลี่ยนแปลงได้ทั้งเพิ่มขึ้นและลดลง — เมื่อผู้ให้บริการยุติแพ็กเกจฟรี ตัวเลขจะลดลง และเมื่อมีรายใหม่เข้ามา ตัวเลขก็จะเพิ่มขึ้น เราเผยแพร่ค่าที่แค็ตตาล็อกคำนวณได้จริง ไม่ใช่กรณีดีที่สุดที่ปัดตัวเลขให้สูงขึ้น
⭐ กดดาวให้รีโพนี้ หาก OMNIROUTE ช่วยให้คุณประหยัดเงินและทำงานได้ง่ายขึ้น
💬 เข้าร่วมชุมชน
👋 ติดตามผู้ดูแล — รับข่าวสารเกี่ยวกับผู้ให้บริการรายใหม่ รุ่นที่เผยแพร่ และเคล็ดลับก่อนใคร:
คำถาม เคล็ดลับเกี่ยวกับผู้ให้บริการ แผนพัฒนา และการสนับสนุน → Discord · Telegram · WhatsApp 🌍 ทั่วโลก / 🇧🇷 บราซิล / พอร์ทัล
📈 เกตเวย์เติบโตอย่างต่อเนื่อง
| v3.8.49 | v3.8.50 | v3.8.51+ |
|
|---|---|---|---|
| 🌐 ผู้ให้บริการ | 290 | 352 | รอเพิ่มอีก |
| 🧠 ID โมเดลแชตที่ไม่ซ้ำกัน | 1185 | 1312 | — |
| 🖼️ บริดจ์ระหว่างโมดาลิตี | — | 🆕 ภาพ + เสียง + วิดีโอ | — |
| 📡 แค็ตตาล็อกฟรีของ Radar | — | 🆕 เลือกเปิดใช้ | — |
| ⚖️ การจัดตารางเวลาตามโควตา | — | 🆕 Quota-Share | — |
| 📊 เทเลเมทรีโควตา | — | 🆕 แบบเรียลไทม์ | — |
→ แผนงาน — เดินหน้าตามเส้นทางสู่ v3.9.0 LTS
🧩 พร้อมใช้งาน
| 🚀 เริ่มต้น | 🚀 เริ่มต้นอย่างรวดเร็ว | 📦 ติดตั้ง | 🆓 ไม่ต้องตั้งค่า |
| 💡 เรียนรู้ | 💥 คำมั่นสัญญา | 🤔 ทำไมต้อง OmniRoute | 🏆 สิ่งที่ทำให้แตกต่าง |
| ⚙️ ฟีเจอร์ | 🎯 คอมโบ | 🌐 ผู้ให้บริการ | 🔌 CLI และ MCP |
| 🗜️ การบีบอัด | 🖥️ ทำงานได้ที่ไหน | 🔒 เป็นส่วนตัว | |
| 👀 ดูการทำงาน | 🎬 การทำงานจริง | ✨ มีอะไรใหม่ | 🤖 CLI ที่เข้ากันได้ |
| 💚 สนับสนุน | 💚 สนับสนุน / บริจาค | 💬 ชุมชน | 💖 ผู้สนับสนุน |
| 📦 โปรเจกต์ | 🛠️ เทคโนโลยีที่ใช้ | 📖 เอกสารประกอบ | 👥 ผู้มีส่วนร่วม |
🆓 ใช้งานได้ทันทีที่ติดตั้ง — ไม่ต้องใช้คีย์ ไม่ต้องตั้งค่า
# ติดตั้งใหม่โดยไม่ต้องใช้ข้อมูลประจำตัว — `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/
💥 คำมั่นสัญญา
🤔 ทำไมต้อง OmniRoute?
🤝 สนับสนุนโดยมิตรโอเพนซอร์สของเรา
ต้องการเข้าร่วมเป็นมิตรโอเพนซอร์สหรือไม่? บริษัทเหล่านี้คือผู้สนับสนุนโอเพนซอร์สและช่วยให้ OmniRoute เดินหน้าต่อไปได้ — และเราเปิดเผยต่อสาธารณะว่าโทเค็นทุกโทเค็นที่พวกเขามอบให้เราถูกนำไปใช้อย่างไร ติดต่อเราได้ที่: diegosouza.pw@outlook.com
|
Kimi Moonshot AI |
ขอขอบคุณ Kimi (Moonshot AI) มิตรโอเพนซอร์สผู้ร่วมก่อตั้งของเรา ที่ให้การสนับสนุนโปรเจกต์นี้! Kimi คือห้องปฏิบัติการ AI เบื้องหลังตระกูลโมเดลแบบเปิดน้ำหนัก K2 และ K3 — Kimi K3 มอบหน้าต่างบริบทขนาด 1M โทเค็น ความสามารถด้านภาพในตัว และการเขียนโค้ดระดับแนวหน้า ในราคาเพียงเศษเสี้ยวของโมเดลแบบปิด อีกทั้งยังพร้อมใช้งานได้ทันทีร่วมกับ Claude Code, Codex และเครื่องมือเขียนโค้ดทุกตัวที่ OmniRoute รองรับ
การสนับสนุนของ Kimi ช่วยขับเคลื่อนอะไรบ้าง: เครดิต API ของ Kimi ขับเคลื่อนไปป์ไลน์การเผยแพร่ที่ผ่านการตรวจสอบด้วย AI ของ OmniRoute — ขั้นตอน การตรวจสอบการผสานโค้ดที่ขับเคลื่อนโดย Kimi K3 ซึ่งตรวจสอบทุก pull request ก่อนเผยแพร่ — รวมถึงการพัฒนาฟีเจอร์ในแต่ละวัน การรองรับ Kimi ระดับเฟิร์สต์คลาสพร้อมใช้งานผ่านทั้งสองช่องทาง ได้แก่ Kimi API โดยตรง ( kimi-k3) และแพ็กเกจเขียนโค้ด Kimi Code (OAuth และคีย์ API) นอกจากนี้ OmniRoute ยังเป็นโปรเจกต์โอเพนซอร์สจากบราซิลโปรเจกต์แรกในโปรแกรมสนับสนุนของ Kimi อีกด้วย รับคีย์ Kimi API พร้อมเครดิตเพิ่มอีก 15% →
|
|
Cheaper Inference cheaperinference.com |
ขอขอบคุณ Cheaper Inference มิตรโอเพนซอร์สของ OmniRoute ที่ให้การสนับสนุนโปรเจกต์นี้! Cheaper Inference คือเกตเวย์ที่จัดอันดับตามต้นทุนและจำหน่ายโมเดลระดับแนวหน้าจำนวน 42 รุ่น — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok และ MiniMax — ผ่านเอนด์พอยต์เดียวที่เข้ากันได้กับ OpenAI โดยกำหนดเส้นทางแต่ละคำขอไปยังผู้ให้บริการที่เข้าเกณฑ์และมีราคาถูกที่สุด ทั้งยังไม่เรียกเก็บเงินเกินราคาปลีกที่ผู้สร้างโมเดลกำหนดไว้
การรองรับระดับเฟิร์สต์คลาสใน OmniRoute: Chat Completions, เอนด์พอยต์เนทีฟ /v1/responses, การประมวลผลภาพ, การเรียกใช้เครื่องมือ และโมเดลภาพ 3 รุ่น (grok-imagine, nano-banana-pro, nano-banana-2 ซึ่งเข้าถึงได้ในรูปแบบ cheaperinference/<model>) รับคีย์ API →
|
ลิงก์ที่ติดแท็ก aff=omniroute คือลิงก์พาร์ทเนอร์ ซึ่งช่วยสนับสนุนเงินทุนแก่โปรเจกต์โดยที่คุณไม่มีค่าใช้จ่ายเพิ่มเติม
🎟️ โปรโมชันพันธมิตร — คูปองสมัครใช้งานฟรีจากผู้ให้บริการที่เราไม่ได้ให้การสนับสนุน (คลิกเพื่อขยาย)
ส่วนนี้มีไว้สำหรับรหัสแนะนำ/คูปองเท่านั้น ความร่วมมือแบบผู้สนับสนุนอยู่ในส่วน 🤝 สนับสนุนโดยมิตรโอเพนซอร์สของเรา ด้านบน OmniRoute ไม่มีความสัมพันธ์ด้านการสนับสนุนหรือการเป็นพาร์ทเนอร์กับผู้ให้บริการที่ระบุไว้ที่นี่ — ทั้งหมดนี้เป็นคูปองสาธารณะที่ทุกคนสามารถใช้ได้
|
AgentRouter agentrouter.org |
AgentRouter — สมัครผ่านลิงก์พันธมิตร · รับเครดิตฟรี $100 เมื่อสมัครใช้งาน (เซิร์ฟเวอร์ฟรี จึงอาจมีเวลาแฝงสูงกว่า — เหมาะสำหรับการทดสอบ ไม่ใช่การใช้งานจริง) รองรับระดับเฟิร์สต์คลาสใน OmniRoute ตั้งแต่ v3.8.50: Chat Completions, รูปแบบการสื่อสารที่เข้ากันได้กับ Anthropic และพาธที่เข้ากันได้กับ OpenAI โมเดลที่พร้อมใช้งานประกอบด้วย claude-opus-4-8, claude-opus-5, gpt-5.6-sol และอื่นๆ รับเครดิตฟรี $100 ของคุณ →
⚠️ ลิงก์พันธมิตร — OmniRoute ไม่มีความสัมพันธ์ด้านการสนับสนุนหรือการเป็นพาร์ทเนอร์กับผู้ให้บริการรายนี้ |
รู้จักผู้ให้บริการรายอื่นที่มีคูปองสมัครใช้งานฟรีสุดคุ้มและเป็นประโยชน์ต่อผู้ใช้ OmniRoute หรือไม่? เปิด issue แล้วเราจะเพิ่มไว้ที่นี่
🎯 Combos — ฟีเจอร์เรือธง
คอมโบ คือสายโซ่ของโมเดลที่ OmniRoute กำหนดเส้นทางไปยังโมเดลต่าง ๆ โดยอัตโนมัติ หากโควตาหมด ผู้ให้บริการล้มเหลว หรือค่าใช้จ่ายพุ่งสูง คอมโบจะย้ายไปยังโมเดลถัดไปที่เข้าเกณฑ์และทำงานเป็นปกติได้ 🛡️
⚡ ไม่ต้องกำหนดค่า — เพียงใช้ auto
ไม่ต้องสร้างคอมโบ เพียงตั้งค่าโมเดลเป็น auto (หรือตัวแปรรูปแบบอื่น) แล้ว OmniRoute จะสร้างคอมโบเสมือนจากผู้ให้บริการที่คุณเชื่อมต่อ พร้อมให้คะแนนแบบเรียลไทม์:
| รหัสโมเดล | สิ่งที่ปรับให้เหมาะสม |
|---|---|
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 |
กระจายโหลดแบบสุ่มด้วยการเลือกสองตัวเลือก |
| 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 |
เส้นทางล่าสุดที่ทราบว่าทำงานได้ดี — ตรึงไว้กับผู้ให้บริการล่าสุดที่สำเร็จ จากนั้นจึงใช้กฎสำรอง |
| 17 | auto |
ให้คะแนนแบบเรียลไทม์จาก 16 ปัจจัยสำหรับทุกการเชื่อมต่อ 🤖 |
| 18 | fusion |
กระจายคำขอไปยังกลุ่มโมเดล + ให้โมเดลผู้ตัดสินสังเคราะห์เป็นคำตอบเดียว 🧬 |
| 19 | pipeline |
เชื่อมโยงขั้นตอน — เอาต์พุตของแต่ละเป้าหมายจะถูกส่งเป็นอินพุตให้เป้าหมายถัดไป 🔗 |
กลไก Auto-Combo ให้คะแนนตัวเลือกแต่ละรายการจาก 16 ปัจจัย (สถานะการทำงาน โควตา ค่าใช้จ่าย เวลาแฝง ความเหมาะสมกับงาน คุณภาพ ความพร้อมใช้งานของเซสชัน…) — ดู docs/routing/AUTO-COMBO.md
🧱 ความยืดหยุ่นมีมาให้ในตัว (3 ชั้นที่เป็นอิสระต่อกัน)
📖 กลไก Auto-Combo · คู่มือความยืดหยุ่น
🏆 สิ่งที่ทำให้ OmniRoute แตกต่าง
📊 ระเบียบวิธีฉบับเต็ม & รายละเอียดแต่ละฟีเจอร์เมื่อเทียบกับ 9router, OpenRouter, CLIProxyAPI & LiteLLM → 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 — ทันที ไม่มีค่าธรรมเนียม (บราซิล)
คีย์ (สุ่ม): 5d865059-bc44-483a-962d-43ceb80126eb
Pix copia-e-cola:
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
₿ คริปโต — BTC · ETH · USDT-TRC20 · USDC-Solana (คลิกเพื่อขยาย)
| ₿ BTC | Bitcoin (SegWit) | bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd |
| Ξ ETH | Ethereum (ERC20) | 0x64Cf6B68A6Ff34288e89172950a2d00102337a84 |
| ₮ USDT | Tron (TRC20) | TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2 |
| $ USDC | Solana | 2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu |
⚠️ โปรดส่งเหรียญแต่ละชนิดผ่านเครือข่ายที่ระบุไว้เท่านั้น — การส่งผ่านเครือข่ายที่ไม่ถูกต้องอาจทำให้เงินสูญหายได้
🐛 พบข้อบกพร่องหรือมีข้อเสนอแนะใช่ไหม? เปิดการสนทนา
หมายเหตุสำหรับนักพัฒนา: โปรเจกต์อาจสร้างไฟล์ .env ในเครื่องระหว่าง npm install/postinstall เพื่อความสะดวกของนักพัฒนา ไฟล์นี้ถูกละเว้นโดยตั้งใจผ่าน .gitignore (ดู .gitignore) และต้องไม่ถูกคอมมิตโดยเด็ดขาด — หากคอมมิตโดยไม่ตั้งใจ ให้หมุนเวียนข้อมูลลับใดๆ ที่ถูกเปิดเผยและลบไฟล์ออกจากประวัติ ดูคำแนะนำเกี่ยวกับการจัดการไฟล์สภาพแวดล้อมในเครื่องและข้อมูลลับได้ที่ docs/DEVELOPER-ENVIRONMENT.md
📡 OmniRoute Radar
ข้อมูลสำคัญของแพ็กเกจฟรียังคงอยู่ที่ ~1.47B โทเค็น/เดือน จากแค็ตตาล็อกที่จัดทำเอกสารไว้ข้างต้น ซึ่งมีการลบรายการซ้ำระหว่างพูลแล้ว เครดิตชั่วคราวสำหรับการสมัครใช้งานกับผู้ให้บริการอาจเพิ่มจำนวนในเดือนแรกแยกต่างหากเป็น ~2.07B Radar เป็นโอเวอร์เลย์แค็ตตาล็อกที่มีการลงลายเซ็นและเลือกเปิดใช้ได้ สำหรับผู้ที่ต้องการข้อมูลความพร้อมใช้งานของโมเดลฟรีที่ใหม่ยิ่งขึ้นในช่วงระหว่างการเผยแพร่ OmniRoute แต่ละรุ่น ทั้งแค็ตตาล็อกชุมชนและฟีเจอร์ฟรีที่มีอยู่ทั้งหมดจะยังคงใช้งานได้ฟรี
ผู้สนับสนุนสามารถรับแค็ตตาล็อกแบบสดและโอกาสเพิ่มเติมจากผู้ให้บริการได้ เพดานแยกต่างหากซึ่งอาจเปลี่ยนแปลงได้นั้นอยู่ที่ สูงสุดประมาณ 3B โทเค็น/เดือน โดยขึ้นอยู่กับความพร้อมใช้งานของผู้ให้บริการ เพดานดังกล่าวไม่ใช่การรับประกัน: ผู้ให้บริการสามารถเปลี่ยนโควตา คุณสมบัติในการรับสิทธิ์ โมเดล หรือภูมิภาคได้ทุกเมื่อ
Radar เป็นฟีเจอร์ที่ต้องเลือกเปิดใช้และใช้เฉพาะ GET เท่านั้น ไคลเอนต์ OmniRoute จะไม่อัปโหลดพรอมต์ ทราฟฟิก การกำหนดค่าผู้ให้บริการ ข้อมูลวัดผลการใช้งาน หรือสถานะการปิดประกาศในเครื่อง ดูข้อมูลเกี่ยวกับคุณสมบัติในการรับสิทธิ์และแค็ตตาล็อกปัจจุบันได้ที่ radar.omniroute.online/planos
✨ มีอะไรใหม่
ไฮไลต์ล่าสุดจาก v3.8.20 → v3.8.50 ดูประวัติฉบับเต็มได้ใน
CHANGELOG.md
- 🎛️ OmniConductor — มอบหมายงานขาเข้าผ่าน A2A ไปยังฝูงเอเจนต์ของคุณ พร้อมสกิล Conductor บน Agent Card และแผงแดชบอร์ดที่มีการแชตด้วยเสียงแบบกดเพื่อพูดผ่าน Faro → เซิร์ฟเวอร์ A2A
- 🛂 การควบคุมการรับโหลดแบบปรับตัวและการป้องกันโอเวอร์โหลด — คำขอแชตที่ใช้ทรัพยากรสูงจะเข้าคิวแทนที่จะตอบกลับด้วย 503 พร้อม rolling lease ของ RPM แบบอะตอมมิกต่อการเชื่อมต่อ → คู่มือความยืดหยุ่น
- 🗂️ การจัดลำดับ
/v1/modelsแบบมาตรฐาน — แต่ละผู้ให้บริการมีหนึ่งบล็อกที่ต่อเนื่องและจัดกลุ่มตามผู้ให้บริการ (ปักหมุดคอมโบไว้ก่อน) โดยมีลำดับคงที่ในแหล่งที่มาของแค็ตตาล็อกทั้งหมด → เอกสารอ้างอิง API - 🗜️ การเพิ่มความแข็งแกร่งให้ระบบบีบอัด — เปิดใช้ตัวป้องกันการขยายข้อมูลโดยค่าเริ่มต้น, แพ็ก Caveman สำหรับ DE / FR / JA + ภาษาจีน (wényán), ตัวกรอง RTK สำหรับ Gradle และ .NET → การบีบอัด
- 💸 ค่าใช้จ่ายแบบอัตราคงที่ที่ตรงไปตรงมา — ผู้ให้บริการแบบสมัครสมาชิก / แผนเขียนโค้ดจะแสดงค่าใช้จ่ายเป็น $0 ในการวิเคราะห์ต้นทุน ส่วนงบประมาณ โควตา และการกำหนดเส้นทางยังคงประเมินตามปกติ → เอกสารอ้างอิง API
- ⚖️ การกำหนดเส้นทางแบบแบ่งโควตา — แบ่งโควตาของบัญชีที่ใช้ร่วมกันอย่างเป็นธรรมระหว่างคีย์ในพูล พร้อมใช้ทรัพยากรอย่างเต็มประสิทธิภาพโดยให้ยืมส่วนที่ไม่ได้ใช้งาน → คู่มือความยืดหยุ่น
- 🤖 การตั้งค่า CLI/เอเจนต์ด้วยคำสั่งเดียว — มีคำสั่ง
setup-*ที่ลงทะเบียนไว้ 13 คำสั่ง;omniroute runเปิดใช้งาน CLI 7 รายการ (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI);omniroute configureรองรับเป้าหมาย 10 รายการ พร้อมเครื่องมือเลือกผู้ให้บริการ+โมเดลแบบอินเทอร์แอ็กทีฟและรายการโปรดแยกตามบริบท → การผสานรวม CLI - 🛰️ โหมดระยะไกล — ควบคุม OmniRoute ระยะไกลด้วยโทเค็นแบบจำกัดขอบเขต (
connect/contexts/tokens) พร้อมตัวช่วย OAuthantigravityสำหรับการติดตั้งบน VPS → โหมดระยะไกล - 🧭 การกำหนดเส้นทางอัตโนมัติที่ชาญฉลาดยิ่งขึ้น — คอมโบ
auto/<category>:<tier>, Fusion (คณะโมเดล + ผู้ตัดสิน), การกำหนดเส้นทางตามงาน และการแทนที่โมเดล / โหมด / งบประมาณ USD แยกตามคำขอ → Auto-Combo - 🗜️ การบีบอัดแบบเสียบต่อได้ — เอนจินที่ประกอบร่วมกันได้ 12 รายการ + Compression Studios: LLMLingua-2, Ultra แบบสองระดับ, omniglyph, เกตตรวจสอบความเที่ยงตรงในแต่ละขั้นตอน, GCF v3.2 และเครื่องมือแก้ไขแบบลากเพื่อจัดลำดับใหม่ → การบีบอัด
- 🕵️ การถอดรหัส MITM แบบโปร่งใส (TPROXY) — ดักจับ CLI ที่ไม่สนใจตัวแปรสภาพแวดล้อมของพร็อกซี พร้อม CA แยกตาม SNI และตัวติดตั้ง trust store → MITM/TPROXY
- 💸 เทเลเมทรีค่าใช้จ่ายทุกที่ — ส่วนหัวค่าใช้จ่าย/การใช้งาน
X-OmniRoute-*ในทุกเอนด์พอยต์, ส่วนหัวแสดงการประหยัดจาก cache-HIT และโควตาการใช้จ่าย USD แยกตามคีย์ → เอกสารอ้างอิง API - 🧠 หน่วยความจำที่คุณควบคุมได้ — ปิดไว้โดยค่าเริ่มต้น, เลือกเปิดใช้การควอนไทซ์เวกเตอร์แบบ int8 + การเสื่อมตามประเภท และ
x-omniroute-no-memoryแยกตามคำขอ → หน่วยความจำ - 🛡️ ความปลอดภัย — ตัวป้องกัน prompt injection ในทุกเส้นทาง LLM (ชุดทดสอบแบบ red-team), กลไกป้องกันการเปิดเผยข้อมูลรับรองที่เลือกเปิดใช้ได้ (ปกปิดคีย์ API/ข้อมูลลับที่รั่วไหลทั้งสองทิศทาง), การค้นหาเว็บผ่าน DuckDuckGo ฟรีเป็นทางเลือกสุดท้าย และเกตเข้าสู่ระบบ OIDC สำหรับแดชบอร์ดที่เลือกเปิดใช้ได้ (การเข้าสู่ระบบด้วยรหัสผ่านยังคงพร้อมใช้งานเสมอ) → กลไกป้องกัน
- 🖼️ เอนด์พอยต์ใหม่ —
/v1/ocr(Mistral OCR) และ/v1/audio/translations(รูปแบบ Whisper) เติมเต็มความสามารถด้านสื่อ → เอกสารอ้างอิง API - 🎨 การสร้างรูปภาพ / วิดีโอ / เสียง — API เดียวสำหรับสื่อ: วิดีโอจาก xAI Grok Imagine และ Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind และผู้ให้บริการเสียงพูด เช่น ElevenLabs → เอกสารอ้างอิง API
- 🌍 การปรับใช้และการปฏิบัติการ —
basePathสำหรับ reverse proxy, การตรวจหาภาษาของเบราว์เซอร์อัตโนมัติ, การติดตามอุปกรณ์แยกตามคีย์, ความเชื่อถือ MITM แบบไม่ต้องใช้สิทธิ์ root และการรองรับภาษา zh-TW → สภาพแวดล้อม - 🤝 ผู้ให้บริการและเอเจนต์เพิ่มเติม — เอเจนต์บนคลาวด์ (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) พร้อมเบราว์เซอร์ + การเข้าสู่ระบบ OAuth, การ์ด Ollama ระดับเฟิร์สคลาส, Claude Opus 5 และ Sonnet 5, ความร่วมมืออย่างเป็นทางการกับ Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… พร้อม แค็ตตาล็อกผู้ให้บริการ 352 ราย ที่ปรับปรุงใหม่ → ผู้ให้บริการ
- 📡 ความโปร่งใสในการกำหนดเส้นทาง — ทุกการตอบกลับมีส่วนหัว
X-OmniRoute-Decisionที่ระบุกลยุทธ์/ผู้ให้บริการ/เวลาแฝงที่ใช้ให้บริการ, กลยุทธ์คอมโบใหม่cache-optimized+ ปัจจัยcacheAffinityของ Auto-Combo จะกำหนดเส้นทางคำขอซ้ำกลับไปยังการเชื่อมต่อที่เก็บคำนำหน้าไว้ในแคช และเอนด์พอยต์แบบอ่านอย่างเดียว/v1/auto-combo/{channel}/candidatesจะแสดงพูลตัวเลือกปัจจุบันของช่องauto/*→ Auto-Combo - ⚡ ประสิทธิภาพและโครงสร้างพื้นฐานภายในเครื่อง — Redis ภายในเครื่องแบบคลิกเดียว, เครื่องมือปรับใช้รีเลย์สำหรับ Cloudflare Workers / Deno Deploy และ Bifrost กับ Mux ในฐานะบริการฝังตัวที่มีการกำกับดูแล → บริการฝังตัว
- 🧩 สิ่งที่รวมมาให้อีกด้วย — เฟรมเวิร์กปลั๊กอิน + มาร์เก็ตเพลส, เฟรมเวิร์กสกิล Omni/Agent/GitHub, การผสานรวม Obsidian vault (เครื่องมือ MCP 22 รายการ), Batch API และ Files API ที่เข้ากันได้กับ OpenAI, แคชการตอบกลับเชิงความหมาย, ระบบเกมมิฟิเคชันพร้อมตารางผู้นำ, การค้นหาเอเจนต์ ACP (เอเจนต์ในตัว 15 รายการ), การส่งออกบันทึกไปยัง BigQuery ตามกำหนดเวลา, การแทรกข้อผิดพลาด
auto/chaos, บริดจ์บอต Telegram, ตัวจัดการเวอร์ชันภายในแอป และการจัดอันดับผู้ให้บริการฟรีแบบ LMArena-ELO → เอกสาร
🤖 CLI และเอเจนต์เขียนโค้ดที่รองรับ
ใช้การกำหนดค่าเดียว —
http://localhost:20128/v1— แล้ว AI IDE หรือ CLI ทุกตัว ก็ทำงานบนโมเดลฟรีและราคาประหยัดได้
Claude Code |
Codex CLI |
Cline |
Kilo Code |
Zoo Code |
Continue |
Aider |
ForgeCode |
jcode |
DeepSeek TUI |
CodeWhale |
OpenCode |
Factory Droid |
Copilot CLI |
Cursor CLI |
Smelt |
Pi |
Grok Build |
Hermes Agent |
OpenClaw |
Goose |
Open Interpreter |
Warp AI |
Agent Deck |
📖 การตั้งค่าแยกตามเครื่องมือสำหรับเครื่องมือทั้ง 36 รายการ (CLI Code 26 รายการ + CLI Agents 10 รายการ) → docs/reference/CLI-TOOLS.md · 🧩 ปลั๊กอิน OpenCode → @omniroute/opencode-provider
เรียกใช้ CLI ที่รองรับผ่าน OmniRoute ได้ด้วยคำสั่งเดียว — ไม่มีการเขียนไฟล์กำหนดค่า, ข้อมูลประจำตัวจะถูกส่งให้แต่ละโปรเซส และ Qwen/Gemini จะใช้โฮมแบบแยกชั่วคราว:
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"
# หรือเลือกผู้ให้บริการและโมเดลแบบโต้ตอบ แล้วเขียนการกำหนดค่าของเครื่องมือนั้น:
omniroute configure codex # รองรับด้วย: claude opencode qwen aider goose gemini cline continue kilo
ทุกคำสั่งจะใช้บริบทรีโมตที่กำลังใช้งานอยู่ (omniroute connect <host>), --dry-run
จะแสดงตัวอย่าง env/args ที่แน่นอนโดยไม่ดำเนินการ และ --api-key-env NAME จะช่วยไม่ให้ข้อมูลลับ
ปรากฏในประวัติคำสั่งของเชลล์ → การผสานรวม CLI
🌐 ผู้ให้บริการ AI 352 ราย — 152 รายมีเครื่องหมายกำกับว่าฟรีในแค็ตตาล็อก
ผู้ให้บริการที่ลงทะเบียนแล้ว 352 ราย ครอบคลุมคอลเลกชันมาตรฐานสำหรับแชต สื่อ การค้นหา โลคัล คลาวด์เอเจนต์ และระบบ โดยในจำนวนนี้ 152 รายมีข้อมูลเมตาสำหรับการค้นพบ
hasFree: trueรีจิสทรีโมเดลแชตครอบคลุม ผู้ให้บริการ 229 ราย / คู่ผู้ให้บริการ-โมเดลที่ไม่ซ้ำกัน 2,554 คู่ / ID โมเดลดิบ 1,283 รายการ ส่วนแค็ตตาล็อกโควตาฟรีที่แยกต่างหากมี ข้อมูลรายโมเดล 443 แถว, พูลแบบหมุนเวียน 34 พูล และ ผู้ให้บริการที่ให้ใช้ฟรีตลอดไปแบบหมุนเวียน/ไม่ต้องใช้คีย์ 53 ราย ตัวหารเหล่านี้แตกต่างกันโดยเจตนา โปรดดูคำจำกัดความและการคำนวณที่ตัดพูลซ้ำออกแล้วใน ข้อมูลอ้างอิงผู้ให้บริการ และ ระดับการใช้งานฟรี
🏢 ห้องปฏิบัติการรายใหญ่ทั้งหมด — ผ่านเอนด์พอยต์เดียว
OpenAI |
Anthropic |
Gemini |
xAI Grok |
DeepSeek |
Mistral |
Qwen |
Meta Llama |
Groq |
NVIDIA |
MiniMax |
Cohere |
Perplexity |
HuggingFace |
Together |
Fireworks |
Cloudflare |
Baidu |
…และอีกกว่า 330 ราย — ไอคอนทุกรายการถูกดึงแบบเรียลไทม์จากแค็ตตาล็อกผู้ให้บริการของแดชบอร์ด 📖 ข้อมูลอ้างอิงผู้ให้บริการ
🆓 ฟรีตลอดไป — $0 ไม่ต้องใช้บัตร
📖 แค็ตตาล็อกฉบับเต็มที่เครื่องอ่านได้ → docs/reference/PROVIDER_REFERENCE.md
🖥️ OmniRoute ทำงานได้ที่ไหน — ทุกที่
แอปเดิม เครื่องของคุณ กฎของคุณ ตั้งแต่การติดตั้ง npm แบบ global ไปจนถึง โทรศัพท์ของคุณ ผ่าน Termux
| แพลตฟอร์ม | การติดตั้ง | จุดเด่น |
|---|---|---|
| 📦 npm (global) | npm install -g omniroute | คำสั่งเดียว ใช้ได้กับทุกระบบปฏิบัติการ |
| 🐳 Docker | docker run … diegosouzapw/omniroute | รองรับหลายสถาปัตยกรรม AMD64 + ARM64 |
| 🖥️ เดสก์ท็อป (Electron) | npm run electron:build | หน้าต่างแบบเนทีฟ + ถาดระบบ — Windows / macOS / Linux |
| 🎩 แถบเมนู (OmniRouteTray) | brew install --cask zoispag/tap/omniroute-tray | ดูแลและอัปเดตเซิร์ฟเวอร์อัตโนมัติ — macOS |
| 💪 ARM | arm64 แบบเนทีฟ | Raspberry Pi, เซิร์ฟเวอร์ ARM, Apple Silicon |
| 📱 Android (Termux) | pkg install nodejs && npx -y omniroute | ทำงาน บนโทรศัพท์ของคุณ ได้ตลอด 24/7 โดยไม่ต้อง root |
| 📲 PWA | "เพิ่มไปยังหน้าจอหลัก" | เต็มหน้าจอ ใช้งานออฟไลน์ และติดตั้งได้จากเบราว์เซอร์ |
| 🧩 ปลั๊กอิน OpenCode | @omniroute/opencode-provider | ผสานรวมกับ OpenCode แบบเนทีฟ |
| 🤖 VS Code Copilot Chat | ติดตั้งส่วนขยาย OmniCopilot | โมเดล OmniRoute ทุกโมเดลในตัวเลือกโมเดลของ Copilot Chat แบบเนทีฟ — ทั้ง stable และ Insiders |
| 🛠️ จากซอร์สโค้ด | npm install && npm run dev | ปรับแต่งและร่วมพัฒนา |
📖 คู่มือ Docker · เดสก์ท็อป · ถาดแถบเมนู · Termux · PWA · OpenCode
🧩 ใหม่: OmniRoute ภายใน Copilot Chat แบบเนทีฟของ VS Code
ไม่มีแถบด้านข้างใหม่ ไม่มี UI แชตใหม่ — ทุกโมเดลที่ OmniRoute ให้บริการจะแสดงอยู่ใน ตัวเลือกโมเดลของ Copilot Chat ที่คุณใช้อยู่แล้ว ตั้งแต่ VS Code 1.122 เป็นต้นไป โมเดลจากผู้ให้บริการสามารถทำงานได้ โดยไม่ต้องลงชื่อเข้าใช้ GitHub หรือสมัครสมาชิก Copilot — ใช้โหมดเอเจนต์ การเรียกใช้เครื่องมือ และการมองเห็นได้ ฟรี
ติดตั้งส่วนขยาย 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
📖 คู่มือ VS Code Copilot Chat — การตั้งค่า สิ่งที่แสดงในตัวเลือกโมเดล แดชบอร์ดในแท็บ และการแก้ไขปัญหา
🎩 ใหม่: OmniRouteTray — เกตเวย์ของคุณที่อยู่บนแถบเมนู
omniroute serveทำงานได้ดีที่สุดเมื่อเปิดอยู่ตลอดเวลา OmniRouteTray เปลี่ยนสิ่งนี้ให้เป็นแอปบนแถบเมนูสำหรับ macOS ที่ตั้งค่าเพียงครั้งเดียวแล้วปล่อยให้ทำงานได้เลย: แอปจะเริ่มเซิร์ฟเวอร์ รักษาให้ทำงานอยู่เสมอ แม้จะรีบูต อัปเดตให้โดยตรง และทำให้คุณตรวจสอบโควตาโทเค็นแบบเรียลไทม์ได้ในคลิกเดียว — ไม่ต้อง เปิดหน้าต่างเทอร์มินัลทิ้งไว้ และไม่ต้องคอยดูแลnpm install -g omniroute
สร้างด้วย Tauri v2 (แกนหลัก Rust ที่มีขนาดเล็กจนแทบมองข้ามได้) โดยมาพร้อม
รันไทม์ Node 24 ที่ลงนามแล้วในตัว และจัดการการติดตั้ง OmniRoute ที่แอปเป็นเจ้าของ จึงไม่ขัดแย้งกับ
node/bun แบบ global ของคุณ แอป ใช้การกำหนดค่าและฐานข้อมูล ~/.omniroute/ ที่มีอยู่ร่วมกัน — จึงเป็น
OmniRoute ตัวเดียวกับที่คุณใช้งานอยู่แล้ว เพียงแค่สวมหมวกเท่านั้น 🎩
| สิ่งที่ทำ | วิธีการ |
|---|---|
| 🟢 ดูแลเซิร์ฟเวอร์ | เรียกใช้ omniroute serve และรับช่วงอินสแตนซ์ที่กำลังทำงานอยู่แทนการสร้างซ้ำ |
| 📊 ดูการใช้งานแบบเรียลไทม์ได้ในพริบตา | แถบโควตาของผู้ให้บริการ ขีดจำกัดเซสชัน/รายสัปดาห์ของ Claude พร้อมการนับถอยหลังจนกว่าจะรีเซ็ต และรายละเอียดค่าใช้จ่ายย้อนหลัง 30 วัน |
| 🔄 อัปเดตโดยตรงโดยอัตโนมัติ | ติดตั้งแบบเป็นขั้นตอน สลับเวอร์ชันแบบอะตอมมิก และย้อนกลับเมื่อล้มเหลว — ใช้รุ่นล่าสุดอยู่เสมอ |
| 🚀 เริ่มทำงานเมื่อล็อกอิน | เลือกให้เปิดเมื่อล็อกอินได้ ทำงานเฉพาะในถาดระบบโดยไม่มีไอคอนบน Dock |
| 🩺 การวินิจฉัยและบันทึก | วินิจฉัยด้วยคลิกเดียวและเข้าถึงบันทึกของเซิร์ฟเวอร์ |
brew install --cask zoispag/tap/omniroute-tray
ต้องการดาวน์โหลดใช่ไหม? ดาวน์โหลดไฟล์ .dmg ล่าสุดได้จาก
Releases ซอร์สโค้ด รายการปัญหา และเอกสารการบิลด์
อยู่ที่ zoispag/omniroute-tray
💛 โปรเจกต์ชุมชนโดย @zoispag — ไม่ใช่รุ่นเผยแพร่อย่างเป็นทางการของ OmniRoute
🔒 เป็นส่วนตัวและเน้นการทำงานภายในเครื่องเป็นหลัก
📖 การอนุญาต · มาตรการป้องกัน · การปฏิบัติตามข้อกำหนด
🔌 CLI แบบเต็มรูปแบบ + A2A และ MCP
นอกเหนือจากเซิร์ฟเวอร์แล้ว OmniRoute ยังเป็น ศูนย์ควบคุมผ่านบรรทัดคำสั่งแบบเต็มรูปแบบ ที่มี คำสั่งมากกว่า 80 รายการ พร้อมด้วยโปรโตคอลเอเจนต์แบบเปิด เพื่อให้เอเจนต์ AI สามารถควบคุมได้ ด้วยตนเอง
⌨️ CLI ที่แท้จริง (ไม่ใช่แค่ start)
omniroute # ให้บริการเกตเวย์ + แดชบอร์ด (พอร์ต 20128)
omniroute chat # ไคลเอนต์แชต TUI แบบโต้ตอบ (คำสั่งแบบสแลช: /model /combo /skill /memory)
omniroute setup # วิซาร์ดแนะนำการตั้งค่าเมื่อใช้งานครั้งแรก
omniroute doctor # วินิจฉัยผู้ให้บริการ พอร์ต และการพึ่งพาแบบเนทีฟ
🛰️ โหมดระยะไกล — เรียกใช้ CLI ที่นี่ และเรียกใช้ OmniRoute บน VPS
ใช้ OmniRoute บนเซิร์ฟเวอร์อยู่ใช่ไหม? ควบคุมจากแล็ปท็อปของคุณด้วย CLI เดียวกัน เข้าสู่ระบบเพียงครั้งเดียว ด้วยโทเค็นการเข้าถึงแบบกำหนดขอบเขต จากนั้นทุกคำสั่งจะมุ่งไปยังเซิร์ฟเวอร์ระยะไกล
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; เส้นทางที่สร้างโปรเซสจะยังคงจำกัดไว้เฉพาะ loopback
📖 โหมดระยะไกล
🤝 เชื่อมต่อเอเจนต์ — แล้วให้เอเจนต์ควบคุม OmniRoute ได้ด้วยตนเอง
เปิดให้เข้าถึง OmniRoute ผ่าน MCP, A2A, REST API, webhooks หรือ CLI ระยะไกล — เอเจนต์ที่มีความสามารถใด ๆ (หรือโค้ดของคุณเอง) จะได้รับกุญแจสำหรับควบคุมเกตเวย์ทั้งหมด ไม่ว่าจะเป็นการกำหนดเส้นทาง ผู้ให้บริการ คอมโบ แคช การบีบอัด และหน่วยความจำ โดยทำงานได้อย่างอัตโนมัติ เอนด์พอยต์ HTTP ด้านล่างให้บริการภายใต้ http://localhost:20128
| อินเทอร์เฟซ | เอนด์พอยต์ / คำสั่ง | ใช้สำหรับ |
|---|---|---|
| 🧰 MCP (stdio) | omniroute --mcp | เชื่อมต่อกับ Claude Desktop, Cursor หรือไคลเอนต์ MCP ใด ๆ |
| 🌊 MCP (HTTP) | /api/mcp/stream | MCP ระยะไกล — เครื่องมือ 110 รายการ, 33 ขอบเขต (เลือกเปิดใช้การบังคับใช้), พร้อมบันทึกการตรวจสอบอย่างครบถ้วน |
| 📡 MCP (SSE) | /api/mcp/sse | การรับส่งข้อมูล MCP แบบสตรีม |
| 🤝 A2A | /.well-known/agent.json | เอเจนต์ถึงเอเจนต์, JSON-RPC 2.0 + SSE, 6 ทักษะ |
| 🌐 REST API | /v1/* | เข้ากันได้กับ OpenAI — แชต, embeddings, รูปภาพ, เสียง, OCR |
| 🔔 Webhooks | /api/webhooks | ส่งเหตุการณ์คำขอ / โควตาไปยัง Slack, Discord, Telegram หรือ URL ใด ๆ |
| 🛰️ CLI ระยะไกล | omniroute connect | ควบคุมอินสแตนซ์ระยะไกลด้วยโทเค็นการเข้าถึงแบบกำหนดขอบเขต |
# มอบชุดเครื่องมือ OmniRoute แบบเต็มรูปแบบให้ Claude Code ผ่าน MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
📖 เซิร์ฟเวอร์ MCP · เซิร์ฟเวอร์ A2A · โปรโตคอลเอเจนต์
🗜️ ประหยัดโทเค็น 15–95% — โดยอัตโนมัติ
📖 วิธีการทำงาน — ไปป์ไลน์ สถาปัตยกรรม และการคำนวณการประหยัด
ชุดแบบซ้อนเริ่มต้นทำงานตามลำดับ RTK → Caveman เมื่อทั้งสองทำงานกับเพย์โหลดเครื่องมือ/บริบทเดียวกัน ผลการประหยัดจะทบกัน:
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, Caveman (⭐ 90K+), LLMLingua-2 และ Troglodita (PT-BR)
🧱 สแต็กเอนจิน 12 ตัว
เอนจินทำงานตามลำดับในไปป์ไลน์ โดยแต่ละตัวสามารถเปิด-ปิดและกำหนดค่าได้อย่างอิสระสำหรับแต่ละชุด:
| # | เอนจิน | การทำงาน |
|---|---|---|
| 1 | Session-Dedup | ตัดเนื้อหาที่ซ้ำกันระหว่างรอบสนทนา (อ้างอิงตามเนื้อหา ข้ามรอบสนทนา) |
| 2 | CCR | จัดเก็บบล็อกขนาดใหญ่ไว้เบื้องหลังเครื่องหมายเรียกคืน และดึงข้อมูลเมื่อจำเป็น |
| 3 | Lite | ลดช่องว่าง + ตัดแต่ง URL รูปภาพ (พื้นฐานที่มีเวลาแฝงต่ำ) |
| 4 | RTK | กรองผลลัพธ์จากเครื่องมืออย่างชาญฉลาด ขจัดข้อมูลซ้ำ และตัดทอน (รับรู้คำสั่ง) |
| 5 | Responses Tool Output | บีบอัด JSON โดยให้ความสำคัญกับการไม่สูญเสียข้อมูล + บีบอัดข้อมูลวินิจฉัยแบบจำกัดขอบเขตสำหรับเอาต์พุตจากเชลล์/แพตช์/การค้นหา/การบิลด์ (Responses API) |
| 6 | Headroom | ย่อข้อมูลแบบตารางของอาร์เรย์ JSON โดยไม่สูญเสียข้อมูล (~30%) ผ่านโคเดก GCF ที่รวมไว้ในโครงการ |
| 7 | Relevance | ให้คะแนนและคัดเลือกประโยคตามความสัมพันธ์กับคำถามล่าสุดของผู้ใช้ |
| 8 | Caveman | บีบอัดข้อความร้อยแก้วตามกฎ (~65–75% ของเอาต์พุต) |
| 9 | Aggressive | สรุปเนื้อหา + ลดรายละเอียดของรอบสนทนาเก่าลงแบบเป็นลำดับ |
| 10 | LLMLingua-2 | ตัดเนื้อหาตามความหมายด้วย ML ผ่าน MobileBERT ONNX — ปลอดภัยต่อโค้ด ทำงานแบบอะซิงโครนัส |
| 11 | Ultra | ตัดโทเค็นด้วยฮิวริสติก พร้อมระดับโมเดลขนาดเล็ก (SLM) ที่เลือกใช้ได้ |
| 12 | OmniGlyph | การเข้ารหัสบริบทเป็นรูปภาพเชิงทดลองสำหรับ Claude Fable 5 ที่ผ่านการวัดผลบนการเชื่อมต่อโดยตรงกับ Anthropic ส่วนตัวแปลง GPT 5.6 จะยังคงปิดการทำงานอย่างปลอดภัยระหว่างรอหลักฐานตอบรับจากผู้ให้บริการ มีโปรไฟล์การบีบอัดสี่แบบ (ค่าเริ่มต้นเชิงรุก, สมดุล, ปลอดภัยสำหรับการเขียนโค้ด, ส่งผ่านโดยไม่เปลี่ยนแปลง) (เชิงรุกที่สุด ต้องเลือกเปิดใช้) |
บล็อกโค้ด, URL และข้อมูลแบบมีโครงสร้างจะถูกเก็บรักษาให้ตรงกันทุกไบต์ เสมอ พรีเซ็ตแบบคลิกเดียว จะรวมเอนจินต่างๆ เข้าด้วยกัน:
| โหมด | การประหยัด | เหมาะที่สุดสำหรับ |
|---|---|---|
| 🪶 Lite | ~15% | ค่าเริ่มต้นที่ปลอดภัยและเปิดใช้ได้ตลอดเวลา |
| 🪨 Standard (Caveman) | ~30% | การเขียนโค้ดประจำวัน |
| ⚡ Aggressive | ~50% | เซสชันยาวที่ใช้เครื่องมือเป็นจำนวนมาก |
| 🔥 Ultra | ~75% | ประหยัดสูงสุด |
| 🧰 RTK | 60–90% | เอาต์พุตจากเชลล์/การทดสอบ/การบิลด์/git |
| 🔗 Stacked (RTK → Caveman) | 78–95% | พรอมต์แบบผสม + บันทึกจากเครื่องมือ |
ตัวอย่างจริง — โหมด Standard:
ก่อน (69 โทเค็น): "สาเหตุที่คอมโพเนนต์ React ของคุณเรนเดอร์ซ้ำอาจเป็นเพราะคุณกำลังสร้างการอ้างอิงออบเจ็กต์ใหม่ในแต่ละรอบการเรนเดอร์ เมื่อคุณส่งออบเจ็กต์แบบอินไลน์เป็นพร็อพ การเปรียบเทียบแบบตื้นของ React จะมองว่าเป็นออบเจ็กต์ที่แตกต่างกันทุกครั้ง ซึ่งทำให้เกิดการเรนเดอร์ซ้ำ ขอแนะนำให้ใช้ useMemo เพื่อทำ memoization ให้กับออบเจ็กต์"
หลัง (19 โทเค็น): "การอ้างอิงออบเจ็กต์ใหม่ในแต่ละเรนเดอร์ พร็อพออบเจ็กต์อินไลน์ = การอ้างอิงใหม่ = เรนเดอร์ซ้ำ ครอบด้วย useMemo"
คำตอบเดิม โทเค็นน้อยลง 72% ความแม่นยำไม่ลดลง ✅
ตัวอย่าง PT-BR — โหมด Troglodita:
ก่อน (42 โทเค็น): "ปัญหาคือคอมโพเนนต์กำลังเรนเดอร์ซ้ำ เพราะมีการสร้างการอ้างอิงอ็อบเจกต์ใหม่ในแต่ละรอบการเรนเดอร์ ขอแนะนำให้ใช้ useMemo"
หลัง (12 โทเค็น): "เรนเดอร์ซ้ำ: ref ใหม่ทุกรอบ (สร้างอ็อบเจกต์ inline ใหม่) ใช้
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: <mode>; source=<source>
ตั้งการทริกเกอร์อัตโนมัติตามเกณฑ์โทเค็น เปิดปุ่มปรับแบบปรับตัวได้ ปักหมุดโปรไฟล์ที่มีชื่อ ตั้งค่าเฉพาะกิจต่อคำขอ หรือกำหนดไปป์ไลน์ให้กับชุดการกำหนดเส้นทาง — เลือกวิธีที่เหมาะกับเวิร์กโหลด ชุดเครื่องมือประเมินผลแบบออฟไลน์ที่ต้องเลือกเปิดใช้ (npm run eval:compression) จะให้คะแนนความเที่ยงตรงเทียบกับการประหยัดบนคอร์ปัสที่ปักหมุดไว้ ก่อนที่คุณจะนำการเปลี่ยนแปลงไปใช้งานจริง
📖 COMPRESSION_GUIDE.md · RTK_COMPRESSION.md · COMPRESSION_ENGINES.md
⚡ เริ่มต้นอย่างรวดเร็ว
1) ติดตั้งและเรียกใช้
npm install -g omniroute
omniroute
💡 พบ
npm warn ERESOLVEหรือคำเตือนเกี่ยวกับ peer dependency ใช่ไหม? คำเตือนเหล่านี้ไม่เป็นอันตราย
แดชบอร์ดอยู่ที่ http://localhost:20128 · API อยู่ที่ http://localhost:20128/v1
2) เชื่อมต่อผู้ให้บริการฟรี (ไม่ต้องสมัคร)
แดชบอร์ด → ผู้ให้บริการ → เชื่อมต่อ Kiro AI (Claude ฟรี ประมาณ 50 เครดิต/เดือนต่อบัญชี) หรือ OpenCode Free (ไม่ต้องยืนยันตัวตน) → เสร็จเรียบร้อย
3) กำหนดค่าเครื่องมือเขียนโค้ดของคุณ
URL หลัก: http://localhost:20128/v1
คีย์ API: [คัดลอกจากแดชบอร์ด → เอนด์พอยต์]
โมเดล: auto (การกำหนดเส้นทางอัจฉริยะแบบไม่ต้องตั้งค่า — หรือผู้ให้บริการ/โมเดลใดก็ได้)
4) ตรวจสอบว่าระบบทำงาน
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
คุณควรเห็นรายการโมเดลที่เชื่อมต่ออยู่ 🎉 เท่านี้ก็เรียบร้อย — เริ่มเขียนโค้ดได้เลย แล้ว OmniRoute จะกำหนดเส้นทางและสลับไปใช้ตัวสำรองให้คุณโดยอัตโนมัติ
หากไคลเอนต์ของคุณไม่สามารถส่งเฮดเดอร์แบบกำหนดเองได้ OmniRoute ยังมี alias สำหรับความเข้ากันได้ที่ฝังโทเค็นไว้:
แค็ตตาล็อก 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
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 โปรดตรึงเวอร์ชันเป็น :X.Y.Z สำหรับ GitOps ดู ช่องทางการเผยแพร่ Docker อิมเมจกำหนด OMNIROUTE_MEMORY_MB=1024 ไว้ ซึ่งเพียงพอสำหรับแดชบอร์ดและการแชตที่มีภาระงานเบา เอเจนต์สำหรับเขียนโค้ด (POST /v1/responses จาก Claude Code, Codex, Grok, …) จำเป็นต้องใช้ฮีป V8 ที่ใหญ่กว่ามาก มิฉะนั้นโปรเซสจะเกิด FATAL ERROR เมื่อใช้หน่วยความจำประมาณ 12 GiB ภายใต้บริบทยาวสองรายการที่ทำงานทับซ้อนกัน โปรดกำหนดขนาดคอนเทนเนอร์ให้มากกว่าฮีป (บัฟเฟอร์แบบเนทีฟอยู่นอก V8):
| เวิร์กโหลด | ฮีป (-e OMNIROUTE_MEMORY_MB) |
คอนเทนเนอร์ (--memory) |
|---|---|---|
| แดชบอร์ด / การแชตที่มีภาระงานเบา | 1024 (ค่าเริ่มต้นของอิมเมจ) |
≥2 g |
| เอเจนต์สำหรับเขียนโค้ดหนึ่งตัว | 8192 |
≥10 g |
/v1/responses แบบยาวสองรายการที่ทำงานพร้อมกัน |
10240–12288 |
≥12–16 g |
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 ขณะรันไทม์
ช่องทาง Docker สำหรับรุ่นก่อนเผยแพร่:
diegosouzapw/omniroute:nextและdiegosouzapw/omniroute:next-webจะติดตามบรานช์เริ่มต้นrelease/v*ปัจจุบัน แท็กที่เปลี่ยนแปลงได้เหล่านี้มีไว้สำหรับทดสอบการแก้ไขที่ยังไม่ได้เผยแพร่เท่านั้น และ ไม่รองรับการใช้งานจริง ดู ช่องทางการเผยแพร่ Docker
🥟 Bun
รองรับ bun install มาตรฐานและการติดตั้งแบบโกลบอล (bun install -g omniroute) ผ่านการตรวจหารันไทม์ Bun:
bun:sqliteในตัว: OmniRoute ใช้ไดรเวอร์bun:sqliteที่มีมาให้ใน Bun เมื่อทำงานภายใต้ Bun และจะเปลี่ยนไปใช้better-sqlite3บน Node.js หรือsql.jsหากไม่สามารถใช้งานได้- การเลือก Webpack bundler โดยอัตโนมัติในโหมดพัฒนา: การพัฒนา (
bun run dev) จะตรวจพบ Bun โดยอัตโนมัติและปิดใช้งาน Turbopack แล้วใช้ Webpack แทน เพื่อป้องกันความเข้ากันไม่ได้ของ native V8 binding ส่วนบิลด์สำหรับใช้งานจริง (bun run build) จะปฏิบัติตามOMNIROUTE_USE_TURBOPACKเหมือนกับบน Node ทุกประการ โดยใช้ Turbopack เป็นค่าเริ่มต้น หรือกำหนดOMNIROUTE_USE_TURBOPACK=0เพื่อบิลด์ด้วย Webpack (Dockerfile.bunเปิดให้กำหนดค่านี้ผ่าน--build-arg) - Dockerfile สำหรับ Bun โดยเฉพาะ:
Dockerfile.bunแบบหลายสเตจสำหรับการปรับใช้ Bun แบบเนทีฟในสภาพแวดล้อมจริง (docker build -f Dockerfile.bun -t omniroute:bun .)
# ติดตั้งและเรียกใช้ด้วย Bun
bun install
bun run dev
🛠️ จากซอร์สโค้ด
cp .env.example .env && npm install
PORT=20128 npm run dev
📦 pnpm
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
🐧 Arch Linux (AUR)
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
🔧 Nix (Flake)
# ใช้ Nix flakes
nix develop
npm run dev
# หรือใช้ devbox
devbox run npm run dev
📖 คู่มือ Docker — โปรไฟล์ Compose, Caddy HTTPS และ Cloudflare tunnels
🦭 Podman
# 1. เตรียมไดเรกทอรีข้อมูลที่เมานต์แบบ bind
mkdir -p data
# 2. สำหรับ Linux + Podman แบบ rootless ภายในเครื่องเท่านั้น (ห้ามใช้กับไคลเอนต์ 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 และ
ปฏิบัติตามคำแนะนำเกี่ยวกับไดเรกทอรีข้อมูลสำหรับแต่ละโทโพโลยี
📖 คู่มือ Podman — บิลด์ Compose, Podman Machine และ การตั้งค่า Quadlet สำหรับ Linux/systemd
⚡ การติดตั้งที่เร็วขึ้น / ใช้ทรัพยากรน้อยลง (ข้ามการบิลด์แบบเนทีฟ)
เอนจิน SQLite แบบเนทีฟ (better-sqlite3) เป็นการขึ้นต่อกันแบบ ไม่บังคับ ดังนั้นการติดตั้ง
แบบโกลบอลจะไม่ติดค้างระหว่างคอมไพล์จากซอร์ส: ระบบจะใช้ไบนารีที่บิลด์ไว้ล่วงหน้าเมื่อมีเวอร์ชันที่ตรงกับ
แพลตฟอร์ม/Node ของคุณ และหากไม่มี จะเปลี่ยนไปใช้เอนจิน JavaScript ล้วนโดยอัตโนมัติ
(node:sqlite บน Node 22 ขึ้นไป มิฉะนั้นจะใช้ sql.js WASM ที่รวมมาให้) — ไม่จำเป็นต้องใช้เครื่องมือบิลด์
หากต้องการข้ามการวอร์มอัปแบบเนทีฟหลังการติดตั้งทั้งหมด (CI, ระบบที่ไม่มีหน้าจอ หรือเครื่องที่ทำงานช้า):
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 จะข้ามขั้นตอนนี้ด้วย
เพื่อให้ติดตั้งได้เร็วที่สุด แนะนำให้ใช้ pnpm (ที่เก็บแบบระบุตำแหน่งด้วยเนื้อหา + hard links — ดูด้านบน)
สำหรับรันไทม์แบบไม่มีแดชบอร์ดและไม่มีหน้าจอ ให้ใช้โปรไฟล์ Docker base (ด้านบน) หรือ
คู่มือ Termux CLI และเว็บแดชบอร์ดให้บริการโดยโปรเซสเดียวกันบนพอร์ตเดียว
ดังนั้นในขณะนี้จึงยังไม่มีแพ็กเกจสำหรับ CLI โดยเฉพาะแยกต่างหาก
🎬 การทำงานของ OmniRoute
📹 คู่มือวิดีโอ
ภาพรวมแดชบอร์ด ณ วันที่ 2026-08-24 · แคตตาล็อกดิบ: YT 809 | TT 137 | IG 124 · ความสดใหม่ (วัน): YT 1 | TT 21 | IG 22
อันดับทั้งหมด (URL มาตรฐานที่ขจัดรายการซ้ำแล้ว, v > 0, การเข้าถึงสูงสุด):
| #1 | #2 | #3 | #4 | #5 |
|---|---|---|---|---|
| nick_saraev — Instagram — 3,042,474 | theopenstack — Instagram — 692,419 | milesreevesai — TikTok — 620,400 | Vaibhav Sisinty — YouTube — 391,109 | buildwithai.club — Instagram — 347,652 |
| #6 | #7 | #8 | #9 | #10 |
|---|---|---|---|---|
| nivedan.ai — Instagram — 331,973 | vaibhavsisinty — Instagram — 263,744 | Nick Automates — YouTube Shorts — 218,174 | theroshankrishna — Instagram — 186,786 | midudev — TikTok — 177,800 |
เมตริกมาตรฐาน ณ วันที่ 2026-08-24: วิดีโอที่ไม่ซ้ำกัน 1.029 รายการ · ยอดรับชมที่ทราบ 11.132.922 ครั้ง (v > 0) · ช่อง/โปรไฟล์แยกตามเครือข่าย 639 รายการ แดชบอร์ดดิบมีข้อมูล 1.070 แถว โดยรายการ Instagram ที่ซ้ำกัน 41 รายการได้รับการปรับให้เป็นมาตรฐานตาม URL มาตรฐาน และเก็บจำนวนยอดรับชมสูงสุดของแต่ละวิดีโอไว้
🎬 ทำวิดีโอเกี่ยวกับ OmniRoute ไว้ใช่ไหม? เปิด issue หรือ discussion พร้อมแนบลิงก์ — เราจะนำมาแสดงไว้ที่นี่
📧 ชุมชนและความช่วยเหลือ
ทุกอย่างรวมอยู่ในที่เดียว — ติดตามผู้ดูแล พูดคุยกับชุมชน หรือเปิด issue
| ช่องทาง | ที่ไหน / อย่างไร |
|---|---|
| 💼 LinkedIn — ติดตามผู้ดูแลโครงการ | linkedin.com/in/diegosouzapw |
| 🐙 GitHub — ติดตามข่าวสารการเผยแพร่และเคล็ดลับ | @diegosouzapw |
| 💬 Discord | discord.gg/U47eFqAXCn |
| ✈️ Telegram | t.me/omnirouteOficial |
| 🟢 WhatsApp — 🌍 ทั่วโลก | เข้าร่วมกลุ่ม |
| 🟢 WhatsApp — 🇧🇷 บราซิล | เข้าร่วมกลุ่ม |
| 🌍 เว็บไซต์ | omniroute.online |
| 🌍 🌍ชุมชน StHub OmniRoute (ฟรี) | พอร์ทัล StHub |
| 📦 ซอร์สโค้ด | github.com/diegosouzapw/OmniRoute |
| 🐛 รายงานข้อบกพร่อง | เปิด issue — แนบผลลัพธ์จาก npm run system-info |
| 🤝 มีส่วนร่วม | CONTRIBUTING.md · รูปแบบการแตกแขนงและการเผยแพร่ · เลือก good first issue |
| 💚 สนับสนุนโครงการ | ช่องทางการสนับสนุน ↑ · GitHub Sponsors |
🛠️ ชุดเทคโนโลยี
| เลเยอร์ | เทคโนโลยี |
|---|---|
| รันไทม์ | Node.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27 |
| ภาษา | TypeScript 6.0 — ใช้ TypeScript 100% ใน src/ และ open-sse/ (ไม่มี any ในส่วนแกนหลักตั้งแต่ v2.0) |
| เฟรมเวิร์ก | Next.js 16 + React 19 + Tailwind CSS 4 |
| ฐานข้อมูล | better-sqlite3 (SQLite, การบันทึกแบบ WAL) + LowDB (JSON รุ่นเก่า) — โมดูลโดเมน 122 รายการ, การย้ายข้อมูล 176 รายการ |
| หน่วยความจำ | การค้นหาข้อความแบบเต็มด้วย SQLite FTS5 + เวกเตอร์เอ็มเบดดิงที่ควอนไทซ์เป็น int8, การลดทอนแบบมีชนิดข้อมูล |
| สคีมา | Zod 4 — การตรวจสอบ I/O ของเครื่องมือ MCP + ข้อตกลง 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 — การเลียนแบบลายนิ้วมือ TLS แบบ JA3 / JA4, พร็อกซี 3 ระดับ |
| ความยืดหยุ่น | เซอร์กิตเบรกเกอร์, การหน่วงเวลาแบบทวีคูณ, การป้องกันคำขอถาโถมพร้อมกัน, การซ่อมแซมตัวเองด้วย auto-combo |
| การบันทึกล็อก | pino — ล็อก JSON แบบมีโครงสร้างพร้อมบริบทของคำขอ |
| การทดสอบ | ตัวรันการทดสอบของ Node.js + Vitest — ประกาศการทดสอบแบบสแตติกมากกว่า 39,000 รายการ ในไฟล์ทดสอบที่ติดตามมากกว่า 5,100 ไฟล์ (ยูนิต, การผสานรวม, E2E, ความปลอดภัย, ระบบนิเวศ) |
| แพลตฟอร์ม | เดสก์ท็อป (Electron) · Android (Termux) · PWA (ทุกเบราว์เซอร์) |
| CI/CD | GitHub Actions — เผยแพร่ไปยัง npm และ Docker Hub โดยอัตโนมัติเมื่อออกรุ่น |
| ลิงก์ | เว็บไซต์ · npm · Docker Hub |
📖 เอกสารประกอบ
📘 เริ่มต้นใช้งาน
| เอกสาร | คำอธิบาย |
|---|---|
| คู่มือผู้ใช้ | ผู้ให้บริการ คอมโบ การผสานรวม CLI และการปรับใช้ |
| คู่มือการตั้งค่า | วิธีติดตั้งทั้งหมด การกำหนดค่าเครื่องมือ CLI การตั้งค่าโปรโตคอล และการปรับแต่งระยะหมดเวลา |
| คู่มือเครื่องมือ CLI | การตั้งค่าแยกตามเครื่องมือสำหรับ Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo และ Copilot |
| โหมดระยะไกล | ควบคุม OmniRoute ระยะไกล (VPS) จาก CLI บนแล็ปท็อปของคุณผ่านโทเค็นการเข้าถึงที่จำกัดขอบเขต |
| การกำหนดค่า Claude Code | เชื่อมต่อ Claude Code กับ OmniRoute (ภายในเครื่อง/ระยะไกล) ด้วย launch + โปรไฟล์แยกตามโมเดล |
| เริ่มต้นอย่างรวดเร็ว | 3 ขั้นตอน: ติดตั้ง → เชื่อมต่อ → กำหนดค่า |
🔧 การปฏิบัติการและการปรับใช้
| เอกสาร | คำอธิบาย |
|---|---|
| คู่มือ Docker | Docker run, โปรไฟล์ Compose, Caddy HTTPS, ทันเนล และแท็กอิมเมจ |
| คู่มือ Podman | การผสานรวม Quadlet systemd, podman-compose และ SELinux |
| การปรับใช้บน VM | คู่มือฉบับสมบูรณ์: การตั้งค่า VM + nginx + Cloudflare |
| การปรับใช้บน Fly.io | ปรับใช้บน Fly.io พร้อมพื้นที่จัดเก็บถาวร |
| คู่มือ Termux | เรียกใช้ OmniRoute บน Android ผ่าน Termux |
| คู่มือ PWA | การติดตั้ง Progressive Web App, การแคช และสถาปัตยกรรม |
| คู่มือการถอนการติดตั้ง | การลบอย่างหมดจดสำหรับวิธีติดตั้งทั้งหมด |
| การกำหนดค่าสภาพแวดล้อม | ตัวแปร .env และข้อมูลอ้างอิงฉบับสมบูรณ์ |
🧠 คุณสมบัติและสถาปัตยกรรม
| เอกสาร | คำอธิบาย |
|---|---|
| สถาปัตยกรรม | สถาปัตยกรรมระบบ การไหลของข้อมูล และการทำงานภายใน |
| คู่มือการบีบอัด | ไปป์ไลน์ 7 ตัวเลือก: ปิด / เบา / มาตรฐาน / เข้มข้น / สูงสุด / RTK / แบบซ้อน |
| การบีบอัด RTK | การบีบอัดเอาต์พุตคำสั่ง ตัวกรอง ความน่าเชื่อถือ การตรวจสอบ และการกู้คืนเอาต์พุตดิบ |
| เอนจินการบีบอัด | Caveman, RTK, ไปป์ไลน์แบบซ้อน และอินเทอร์เฟซแดชบอร์ด/API/MCP |
| รูปแบบกฎการบีบอัด | สคีมาชุดกฎ JSON สำหรับตัวกรอง Caveman และ RTK |
| แพ็กภาษาสำหรับการบีบอัด | การตรวจจับภาษาและการเขียนชุดกฎ Caveman |
| คู่มือความยืดหยุ่นของระบบ | เซอร์กิตเบรกเกอร์ ช่วงพัก คิว การป้องกันคำขอถาโถมพร้อมกัน และการปลอมแปลง TLS |
| เอนจิน Auto-Combo | การให้คะแนนจาก 16 ปัจจัย แพ็กโหมด และการฟื้นฟูตัวเอง |
| คู่มือพร็อกซี | ระบบพร็อกซี 3 ระดับ, มาร์เก็ตเพลส 1proxy และ CRUD ของรีจิสทรี |
| ระดับใช้งานฟรี | ไดเรกทอรีรวม: พูลแบบเกิดซ้ำที่จัดทำเอกสารไว้ 34 รายการ / รายการระดับใช้งานฟรีในแค็ตตาล็อก 452 รายการ |
| แกลเลอรีคุณสมบัติ | ทัวร์ชมแดชบอร์ดด้วยภาพพร้อมภาพหน้าจอ |
| เอกสารประกอบโค้ดเบส | คำแนะนำการทำความเข้าใจโค้ดเบสที่เป็นมิตรกับผู้เริ่มต้น |
🤖 โปรโตคอลและ API
| เอกสาร | คำอธิบาย |
|---|---|
| เอกสารอ้างอิง API | เอนด์พอยต์ทั้งหมดพร้อมตัวอย่าง |
| ข้อกำหนด OpenAPI | ข้อกำหนด OpenAPI 3.0 |
| เซิร์ฟเวอร์ MCP | เครื่องมือ MCP 110 รายการ การกำหนดค่า IDE และไคลเอนต์ Python/TS/Go |
| คู่มือเซิร์ฟเวอร์ MCP | การติดตั้ง MCP การรับส่งข้อมูล และเอกสารอ้างอิงเครื่องมือ |
| เซิร์ฟเวอร์ A2A | โปรโตคอล JSON-RPC 2.0, ทักษะ, การสตรีม และการจัดการงาน |
| คู่มือเซิร์ฟเวอร์ A2A | การ์ดเอเจนต์ A2A, งาน, ทักษะ และการสตรีม |
📋 โปรเจกต์และคุณภาพ
| เอกสาร | คำอธิบาย |
|---|---|
| การมีส่วนร่วม | การตั้งค่าสภาพแวดล้อมการพัฒนาและแนวทางปฏิบัติ |
| โมเดลการแตกแขนงและการเผยแพร่ | PR ควรมุ่งไปที่ใด (release/*) รวมถึงความหมายของ main และแท็ก |
| บันทึกการเปลี่ยนแปลง | ประวัติการเผยแพร่ฉบับสมบูรณ์แยกตามเวอร์ชัน |
| นโยบายความปลอดภัย | การรายงานช่องโหว่และแนวทางปฏิบัติด้านความปลอดภัย |
| คู่มือ i18n | การรองรับ 42 ภาษา เวิร์กโฟลว์การแปล และ RTL |
| รายการตรวจสอบการเผยแพร่ | ขั้นตอนการตรวจสอบความถูกต้องก่อนเผยแพร่ |
| แผนความครอบคลุม | กลยุทธ์ความครอบคลุมของการทดสอบสำหรับการประกาศการทดสอบแบบสแตติกมากกว่า 39,000 รายการ ในไฟล์ทดสอบที่ติดตามมากกว่า 5,100 ไฟล์ |
⭐ ผู้มีส่วนร่วมยอดเยี่ยม
OmniRoute ได้รับการหล่อหลอมจากชุมชนโอเพนซอร์สที่เปี่ยมด้วยความมุ่งมั่น บุคคลเหล่านี้ได้สร้างผลงานอันโดดเด่นซึ่งส่งผลโดยตรงต่อคุณภาพ เสถียรภาพ และการเข้าถึงของโครงการ ขอขอบคุณ
ผู้มีส่วนร่วมภายนอกเรียงตามจำนวน pull request ที่ merge แล้ว
| อันดับ | ผู้มีส่วนร่วม | PR ที่ merge แล้ว | ~บรรทัดที่เปลี่ยนแปลง |
|---|---|---|---|
| 1 | backryun | 190 | 227,977 |
| 2 | oyi77 | 180 | 407,678 |
| 3 | rdself | 145 | 80,663 |
| 4 | JxnLexn | 128 | 387,049 |
| 5 | KooshaPari | 101 | 125,747 |
| 6 | herjarsa | 88 | 230,872 |
| 7 | RaviTharuma | 79 | 55,106 |
| 8 | maxmad64bis | 69 | 394,715 |
| 9 | artickc | 59 | 33,260 |
| 10 | HouMinXi | 51 | 47,334 |
| 10 | chirag127 | 51 | 5,153 |
| 12 | xz-dev | 50 | 245,976 |
| 13 | hartmark | 47 | 52,185 |
| 14 | rqzbeh | 39 | 143,181 |
| 15 | dhaern | 34 | 19,559 |
| 16 | Dingding-leo | 33 | 1,986 |
| 17 | NomenAK | 32 | 13,854 |
| 18 | MumuTW | 30 | 16,953 |
| 19 | benzntech | 29 | 11,641 |
| 20 | pacocartones | 24 | 9,331 |
| 20 | Prudhvivuda | 24 | 6,312 |
ตรึงข้อมูลไว้ที่ปลายล่าสุดของ release/v3.8.50 ณ dafb4ae808 โดยรวมการ merge จนถึง 2026-08-24 05:26:03 UTC การสำรวจสำมะโนแบบแบ่งหน้าผ่าน GitHub GraphQL ประกอบด้วย PR ที่ merge แล้ว 5,911 รายการ ได้แก่ 2,707 รายการจากเจ้าของ repository, 179 รายการจาก Dependabot และ PR ภายนอก 3,025 รายการจากผู้มีส่วนร่วมที่ไม่ซ้ำกัน 535 คน “บรรทัดที่เปลี่ยนแปลง” คือจำนวนบรรทัดที่เพิ่ม + ลบตามข้อมูลของ GitHub และรวมไฟล์ที่สร้างขึ้นโดยอัตโนมัติ, lockfile, แค็ตตาล็อก, คำแปล และเอกสาร ตัวเลขนี้สะท้อนปริมาณการเปลี่ยนแปลง ไม่ใช่จำนวนบรรทัดโค้ดที่เขียนขึ้นเอง ผู้ที่มีอันดับเสมอกัน ณ จุดตัดจะยังคงอยู่ในรายการ
commit ที่ระบุแหล่งที่มาบน GitHub
|
backryun 🥇 220 คอมมิตที่ระบุแหล่งที่มาจาก GitHub |
Paijo 🥈 219 คอมมิตที่ระบุแหล่งที่มาจาก GitHub |
Randi 🥉 108 คอมมิตที่ระบุแหล่งที่มาจาก GitHub |
Ravi Tharuma 🏅 81 คอมมิตที่ระบุแหล่งที่มาจาก GitHub |
Chris 🏅 70 คอมมิตที่ระบุแหล่งที่มาจาก GitHub |
Markus Hartung 🏅 69 คอมมิตที่ระบุแหล่งที่มาจาก GitHub · อันดับร่วม #6 |
|
Dizzle 🏅 69 คอมมิตที่ระบุแหล่งที่มาจาก GitHub · อันดับร่วม #6 |
Jan Leon 🏅 64 คอมมิตที่ระบุแหล่งที่มาจาก GitHub |
zenobit 🏅 62 คอมมิตที่ระบุแหล่งที่มาจาก GitHub |
Bob.Hou 🏅 51 คอมมิตที่ระบุแหล่งที่มาจาก GitHub · อันดับร่วม #10 |
Xiangzhe 🏅 51 คอมมิตที่ระบุแหล่งที่มาจาก GitHub · อันดับร่วม #10 |
ตรวจสอบอีกครั้งเมื่อ 2026-08-24 06:14:31 UTC: คอมมิตที่ระบุแหล่งที่มาจาก GitHub ตามที่ Contributors API ของรีโพซิทอรีรายงานสำหรับสาขาเริ่มต้น release/v3.8.50 โดย API ส่งคืนข้อมูลประจำตัว 525 รายการ (ผู้ใช้ 415 ราย บอต 2 ราย และผู้ไม่ระบุตัวตน 108 ราย) ตารางนี้ไม่รวมผู้ดูแล บอต และข้อมูลประจำตัวแบบไม่ระบุตัวตน และยังคงแสดงอันดับร่วม ตารางนี้แยกต่างหากจากทั้งการจัดอันดับ PR ที่ผสานแล้วด้านบนและการสำรวจสำมะโนข้อมูลเมตา Git จำนวน 639 คนด้านล่าง
🙏 ฟีเจอร์ การแก้ไขบั๊ก และการปรับปรุงโครงสร้างพื้นฐานของผู้มีส่วนร่วมเหล่านี้เป็น ส่วนสำคัญ ที่ทำให้ OmniRoute มีความน่าเชื่อถือและครบครันด้วยฟีเจอร์ ทุก pull request ทุกกรณีทดสอบ และทุกไฟล์แปล i18n ล้วนมีความสำคัญ โอเพนซอร์สสร้างขึ้นโดยผู้คนเช่นพวกเขา
💖 ผู้สนับสนุน
ขอขอบคุณจากใจจริงแด่ทุกคนที่สนับสนุนเงินทุนให้ OmniRoute จากกระเป๋าของตนเอง — ทุกการสนับสนุนช่วยให้โครงการยังคงใช้งานได้ฟรี เป็นอิสระ และเดินหน้าต่อไป
![]() Andrew 💛 ผู้สนับสนุนรายเดือนที่ยังให้การสนับสนุนอยู่ |
![]() Vlad I 💛 ผู้สนับสนุนรายเดือนที่ยังให้การสนับสนุนอยู่ |
![]() Paco Cartones 💛 ผู้สนับสนุนแบบครั้งเดียวที่ยังให้การสนับสนุนอยู่ |
![]() ศ. Igor Morais 💛 ผู้ที่เคยสนับสนุนแบบครั้งเดียว |
![]() longtao 💛 ผู้ที่เคยสนับสนุนแบบครั้งเดียว |
… และบุคคลอื่นๆ ที่ประสงค์จะไม่เปิดเผยตัวตน 💛
ผู้สนับสนุนสาธารณะบน GitHub ได้รับการตรวจสอบยืนยันอีกครั้งเมื่อ 2026-08-24 สถานะ activeOnly ของ GitHub ใช้กำหนดป้ายสถานะว่ายังให้การสนับสนุนอยู่ด้านบน ผู้ที่เคยสนับสนุนแบบครั้งเดียวและเปิดเผยต่อสาธารณะก่อนหน้านี้ยังคงได้รับคำขอบคุณ และผู้สนับสนุนแบบส่วนตัวยังคงไม่เปิดเผยตัวตน
💖 ร่วมเป็นผู้สนับสนุน → — ทุกดอลลาร์ช่วยให้ OmniRoute ยังคงใช้งานได้ฟรีและเป็นอิสระ
👥 ผู้มีส่วนร่วมกว่า 600 คน
ตรวจสอบเมื่อ 2026-08-24 โดยใช้ฐานที่ตรึงไว้ ac02c5b42f และตรวจสอบซ้ำที่ปลายล่าสุดของ release/v3.8.50 ซึ่งคือ dafb4ae808: ข้อมูลระบุตัวตน Git ของมนุษย์ที่ผ่านการปรับให้เป็นมาตรฐานแล้ว 639 รายการ — 407 รายการปรากฏในฐานะผู้เขียนคอมมิต (รวมถึงผู้ดูแลโครงการ) และ 232 รายการปรากฏเฉพาะในส่วนท้าย Co-authored-by ที่ระบุไว้อย่างชัดเจน การสำรวจนี้ปรับแฮนเดิล noreply ของ GitHub ให้เป็นมาตรฐาน ไม่นับข้อมูลระบุตัวตนของบอต/เอเจนต์/บริการ/ตัวยึดตำแหน่ง 26 รายการ และไม่รวมที่อยู่อีเมลทั่วไปเข้าด้วยกันเพียงเพราะชื่อที่แสดงตรงกัน
วิธีมีส่วนร่วม
- Fork repository
- สร้าง branch จากปลายล่าสุดของ
release/vX.Y.Zที่ ใช้งานอยู่ (ไม่ใช่main) — ดู รูปแบบ Branching และ Release - สร้าง feature branch ของคุณ (
git checkout -b feat/amazing-feature) - Commit การเปลี่ยนแปลงของคุณ (
git commit -m 'feat: add amazing feature') - Push ไปยัง branch (
git push origin feat/amazing-feature) - เปิด Pull Request โดยกำหนด base = branch
release/vX.Y.Zนั้น
ดูแนวทางโดยละเอียดได้ที่ CONTRIBUTING.md
การเผยแพร่เวอร์ชันใหม่
# สร้าง release — npm publish จะทำงานโดยอัตโนมัติ
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
📊 ดาว
🙏 กิตติกรรมประกาศ
OmniRoute ยืนอยู่บนบ่าของยักษ์ใหญ่ โดยเริ่มต้นจากการเป็น fork ของ 9router และการพอร์ตโปรเจกต์ Go อย่าง CLIProxyAPI มายัง TypeScript — และนับจากนั้น ระบบย่อยแต่ละส่วนด้านล่างล้วนได้รับแรงบันดาลใจจากโปรเจกต์โอเพนซอร์สที่บุกเบิกมาก่อน แต่ละโปรเจกต์มีส่วนกำหนดองค์ประกอบที่เป็นรูปธรรมของ OmniRoute นี่คือคำขอบคุณจากเราที่มอบให้แก่ทุกโปรเจกต์ 🙏
⭐ จำนวนดาวได้รับการตรวจสอบจาก REST API ของ GitHub เมื่อวันที่ 24 สิงหาคม 2026 — อย่าลืมไปกดดาวให้โปรเจกต์เหล่านี้ จำนวนดังกล่าวเป็นภาพรวม ณ วันที่ระบุอย่างแม่นยำ และย่อมเปลี่ยนแปลงไปตามธรรมชาติ
🧬 ต้นกำเนิดและเกตเวย์
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มอบให้ OmniRoute |
|---|---|---|
| 9router | 26,161 | โปรเจกต์ต้นฉบับที่ใช้เป็นพื้นฐานของ fork นี้ — โดยได้รับการต่อยอดด้วย API แบบหลายโมดัลและการเขียนใหม่ทั้งหมดด้วย TypeScript |
| CLIProxyAPI | 48,497 | อิมพลีเมนเทชันภาษา Go ที่เป็นแรงบันดาลใจให้พอร์ต JavaScript / TypeScript นี้ |
| LiteLLM | 57,100 | เกตเวย์ AI ซึ่งชุดข้อมูลราคาสาธารณะถูกนำมาใช้ในการซิงค์ข้อมูลติดตามต้นทุนของเรา และโมเดลการปรับผู้ให้บริการให้เป็นมาตรฐานของโปรเจกต์นี้เป็นแนวทางในการออกแบบระบบกำหนดเส้นทางของเรา |
| codex-chatgpt-web | 1,410 | ซอร์สโค้ดภายใต้สัญญาอนุญาต MIT ที่ได้รับการดัดแปลงเป็นบริดจ์ ChatGPT Web → Codex Responses ที่รวมไว้กับโครงการ ซึ่งครอบคลุมอะแดปเตอร์สำหรับเซสชันเบราว์เซอร์ การจัดเฟรมการตอบกลับ การใช้งาน และการค้นหาเว็บ |
| free-claude-code | 48,112 | รูปแบบต่าง ๆ ที่พอร์ตมาใช้กับการกู้คืนสตรีม alias แบบไม่ใช้การคิด การค้นหาเว็บสำรอง ขีดจำกัดแบบหน้าต่างเลื่อน การปกปิดข้อมูลในบันทึก และโฟลว์ตัวเรียกใช้งานที่ได้รับการเสริมความปลอดภัย |
| composer-api | 322 | รูปแบบการเลือกเครื่องมือ ข้อจำกัดเอาต์พุต และการยืนยันใช้เครื่องมือของ Cursor Composer ที่ได้รับการดัดแปลงเข้าสู่ตัวดำเนินการ Cursor แบบเนทีฟ |
| codex-multi-auth | 457 | รูปแบบการเข้าสู่ระบบใหม่และการหมุนเวียน refresh token ที่พอร์ตมาใช้กับการยืนยันตัวตนใหม่ผ่าน Codex OAuth |
| opencode-anthropic-auth | 510 | ค่าเริ่มต้นในการแปลงที่เข้ากันได้กับ Claude Code และลักษณะการทำงานของส่วนหัวการเรียกเก็บเงิน ซึ่งถูกทำให้เป็นรูปแบบทั่วไปในบริดจ์ที่ขับเคลื่อนด้วยการกำหนดค่าของ OmniRoute |
| grok2api-merged | 2 | การแมปโมเดล Grok, ตัวสร้าง Statsig ที่ใช้ TypeError ปลอม, ค่าเริ่มต้นของคำขอและอุปกรณ์ ตลอดจนตัวประมวลผลการตอบกลับ NDJSON ของโปรเจกต์นี้ ได้รับการดัดแปลงอย่างมีนัยสำคัญเข้าสู่ตัวดำเนินการ Grok Web ของ OmniRoute |
| TQZHR/grok2api | 705 | แหล่งซอร์สโค้ดทางอ้อมหลักเบื้องหลัง grok2api-merged โดยอิมพลีเมนเทชันของโมเดล ส่วนหัว เพย์โหลด Statsig และตัวประมวลผลยังคงได้รับการรักษาไว้ในสายการสืบทอดของ Grok Web |
| chenyme/grok2api | 7,520 | ซอร์สโค้ดพื้นฐานภายใต้สัญญาอนุญาต MIT สำหรับเพย์โหลด Grok และค่าเริ่มต้นของอุปกรณ์ ตัวสร้าง Statsig และตัวประมวลผล result.response ซึ่งส่งต่อมาผ่าน TQZHR และ grok2api-merged |
| grok2api-pro | 27 | แหล่งที่มาทางอ้อมซึ่ง grok2api-merged ให้เครดิตสำหรับเลเยอร์พูลพร็อกซี โดย OmniRoute ยังคงรักษาประกาศสายการสืบทอดดังกล่าวไว้ แต่ไม่ได้อ้างว่าได้พอร์ตพูลพร็อกซีมาไว้ในตัวดำเนินการ Grok Web ที่มีขอบเขตจำกัด |
| GrokProxy | 50 | พร็อกซี Grok ที่ยืนยันตัวตนด้วยคุกกี้และรูปแบบการสตรีม result.response.token ของโปรเจกต์นี้เป็นแนวทางสำหรับทรานสปอร์ต Grok Web ของ OmniRoute |
| GrokBridge | 5 | อิมพลีเมนเทชัน Grok Web ดั้งเดิมได้อ้างอิงการออกแบบอัปสตรีมผ่าน HTTP/เบราว์เซอร์ของโปรเจกต์นี้ โดยเส้นทาง HTTP โดยตรงมีต้นกำเนิดจาก GrokProxy จึงไม่มีการอ้างว่าเป็นการพอร์ตโค้ดโดยอิสระ |
| grok-web-api | 14 | สคีมา ChatOptions และซองหุ้มการตอบกลับภาษา Rust ของโปรเจกต์นี้เป็นแนวทางสำหรับประเภทคำขอ Grok และการตอบกลับแบบสตรีมใน TypeScript ของ OmniRoute |
🗜️ การบีบอัดบริบทและโทเค็น — เอนจิน
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มีต่อ OmniRoute |
|---|---|---|
| Caveman | 100,538 | โปรเจกต์ไวรัล "ทำไมใช้โทเค็นเยอะ ในเมื่อโทเค็นน้อยก็เอาอยู่" — ปรัชญาการพูดแบบมนุษย์ถ้ำของโปรเจกต์นี้เป็นขุมพลังให้โหมดบีบอัดมาตรฐานของเรา รวมถึงกฎตัดคำฟุ่มเฟือย/ควบแน่นกว่า 30 ข้อ |
| RTK – Rust Token Killer | 77,185 | การบีบอัดเอาต์พุตคำสั่งประสิทธิภาพสูง — เป็นแรงบันดาลใจให้เอนจิน RTK, DSL สำหรับกรอง JSON, การกู้คืนเอาต์พุตดิบ และไปป์ไลน์แบบซ้อน RTK → Caveman ของเรา |
| headroom | 67,310 | การบีบอัดบริบทแบบย้อนกลับได้ (SmartCrusher) — เป็นแรงบันดาลใจให้เอนจิน headroom และรูปแบบตัวทำเครื่องหมายสำหรับเรียกคืนของ ccr |
| LLMLingua | 6,598 | งานวิจัยการบีบอัดพรอมต์ (LLMLingua / LLMLingua-2) — เป็นแรงบันดาลใจให้เอนจิน llmlingua แบบอะซิงโครนัส ปลอดภัยต่อโค้ด และเปิดทางให้ทำงานต่อเมื่อเกิดข้อผิดพลาด |
| llmlingua-2-js | 31 | พอร์ต JS/ONNX (MobileBERT / XLM-RoBERTa) ที่ใช้เป็นแบ็กเอนด์เธรดผู้ปฏิบัติงานสำหรับเอนจิน LLMLingua ของเรา |
| Troglodita | 40 | การบีบอัดโทเค็นภาษาโปรตุเกสแบบบราซิล — เป็นขุมพลังให้แพ็กภาษา pt-BR ของเรา ได้แก่ การลดคำซ้ำความหมายและการตัดคำฟุ่มเฟือยที่ปรับแต่งให้เหมาะกับไวยากรณ์ภาษาโปรตุเกสแบบบราซิล |
| ponytail | 108,957 | สกิลเขียนโค้ดตามหลัก YAGNI แบบ "นักพัฒนาอาวุโสจอมขี้เกียจ" ที่กลายเป็นไวรัล — เป็นแรงบันดาลใจให้รูปแบบเอาต์พุต less-code ของเรา: การกำกับให้เปลี่ยนแปลงน้อยที่สุดเท่าที่ทำงานได้ ซึ่งช่วยลดโค้ดที่ _สร้างขึ้น_ (แกนด้านเอาต์พุตที่เป็นคู่กับร้อยแก้วกระชับของ Caveman) |
| i-have-adhd | 23,526 | รูปแบบการตอบที่เน้นการลงมือทำก่อนและเป็นมิตรต่อผู้มี ADHD ถูกนำมาปรับใช้เป็นรูปแบบเอาต์พุตแบบกระชับของ OmniRoute ในห้าภาษา |
🧩 รูปแบบกะทัดรัด งานวิจัยโทเค็น และเครื่องมือที่เข้าใจโค้ด
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มีต่อ OmniRoute |
|---|---|---|
| TOON | 25,233 | สัญกรณ์ออบเจ็กต์ที่เน้นโทเค็น — โมเดลแบบคอลัมน์ที่ประกอบด้วยส่วนหัวและแถวเป็นต้นแบบให้ขั้นตอนการย่อตารางของเรา |
| GCF – Graph Compact Format | 41 | รูปแบบกราฟกะทัดรัดและการออกแบบโปรไฟล์ทั่วไปของโปรเจกต์นี้มีส่วนกำหนดแนวทางการย่อตารางและรูปแบบโคเดก Headroom ของ OmniRoute |
| gcf-typescript | 4 | อิมพลีเมนเทชัน TypeScript ภายใต้สิทธิ์ใช้งาน MIT ที่นำมาไว้ในโครงการโดยตรงและต่อยอดเป็นโคเดกโปรไฟล์ทั่วไปของ Headroom |
| token-optimizer-mcp | 494 | แคช Brotli/SQLite + ผลต่างบริบทต่อเซสชัน — เป็นแรงบันดาลใจให้เอนจิน session-dedup ของเรา |
| token-savior | 1,122 | การย่อเอาต์พุต Bash + โปรไฟล์ MCP — เป็นแรงบันดาลใจให้หลักปฏิบัติในการยุติการบีบอัดของเราและการลดรายการเครื่องมือ MCP |
| token-saver | 138 | การบีบอัดเอาต์พุตที่คำนึงถึงเนื้อหาและแยกตามประเภทไฟล์ พร้อมยุติการทำงานเมื่อพบความล้มเหลว — ยืนยันความเหมาะสมของการแจกจ่ายงานตามประเภทและการข้ามเมื่อผลลัพธ์ต่ำกว่าเกณฑ์ขั้นต่ำของเรา |
| token-optimizer | 1,951 | "ค้นหาโทเค็นผี" — รูปแบบการถ่ายโอนข้อมูลออก + แฮนเดิลที่กู้คืนได้ มีส่วนกำหนดแนวคิดการถ่ายโอนข้อมูลออกของ CCR |
| TokenMizer | 28 | พิมพ์เขียวกราฟเซสชัน + การตัดบรรทัดซ้ำข้ามเทิร์น ซึ่งมีส่วนกำหนดการออกแบบ session-dedup ของเรา |
| OmniCompress | 3 | JSON แบบคอลัมน์ใน Rust + การเรียกคืนแบบอ้างอิงตามเนื้อหา + การตัดข้อมูลซ้ำข้ามข้อความ — ยืนยันความเหมาะสมของการออกแบบเอนจิน headroom/ccr/session-dedup ของเรา และค่าคงที่เพื่อความเสถียรของแคชที่ว่า "รูปแบบที่บีบอัดแล้วไม่ขึ้นกับตำแหน่ง" |
| mcp-compressor | 113 | การบีบอัดสคีมา/คำอธิบายเครื่องมือ MCP — มีส่วนกำหนดแนวทางการลดจำนวนรายการเครื่องมือ MCP ของเรา |
| RepoMapper | 197 | การจัดอันดับแผนผังรีโพสไตล์ Aider — มีส่วนกำหนดการสำรวจแผนผังรีโพ/การจัดอันดับการเรียกคืนของเรา |
| quiet-shell-mcp | 4 | การลดเอาต์พุตเชลล์ผ่าน MCP แบบประกาศ — ยืนยันความเหมาะสมของการย่อเอาต์พุต bash แบบประกาศของเรา |
| ts-morph | 6,162 | ชุดเครื่องมือ TypeScript Compiler API — เป็นแรงบันดาลใจให้การลบความคิดเห็นโดยใช้พาร์เซอร์ของเรา ซึ่งยังคงรักษาลิเทอรัลของสตริง เทมเพลต และนิพจน์ทั่วไปไว้ |
🧠 หน่วยความจำและ RAG
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มอบให้ OmniRoute |
|---|---|---|
| Mem0 | 63,902 | เลเยอร์หน่วยความจำสากล — โมเดลที่ใช้พร็อกซีเป็นขอบเขตการเขียน/อ่านมีส่วนกำหนดสถาปัตยกรรมหน่วยความจำของเรา |
| Letta (MemGPT) | 24,382 | เอเจนต์แบบเก็บสถานะพร้อมหน่วยความจำหลายระดับ — เป็นแรงบันดาลใจให้โมเดล Context Control & Recovery (CCR) แบบหลายระดับของเรา |
| WFGY | 1,781 | อนุกรมวิธาน ProblemMap สำหรับรูปแบบความล้มเหลวที่เกิดซ้ำ 16 แบบของ RAG/LLM — เป็นคำศัพท์ร่วมที่ใช้ในคู่มือแก้ไขปัญหาของเรา |
🛰️ การตรวจสอบทราฟฟิก, MITM และพร็อกซีแบบโปร่งใส
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มอบให้ OmniRoute |
|---|---|---|
| llm-interceptor | 66 | การดักจับ/วิเคราะห์แบบ MITM สำหรับทราฟฟิกระหว่างผู้ช่วยเขียนโค้ด ↔ LLM ช่วยกำหนดข้อกำหนดเบื้องต้นของ Traffic Inspector โมดูลสี่ส่วนที่เคยต่อยอดมา ได้แก่ การผสาน SSE, การปรับบทสนทนาให้อยู่ในรูปแบบมาตรฐาน, การปกปิดข้อมูลลับ และการทำให้ส่วนหัวปลอดภัย ได้ถูกแทนที่ด้วยการนำไปใช้งานแบบ clean-room ที่เป็นอิสระโดยอิงตามมาตรฐานโปรโตคอลสาธารณะ ส่วนพื้นผิว host-passthrough สองรายการ (passthrough.ts และ _internal/bypass.cjs) ยังคงเป็นการนำไปใช้งานภายใน OmniRoute ซึ่งจัดประเภทแยกต่างหาก และไม่ได้ถูกเขียนขึ้นใหม่ในการแทนที่ครั้งนั้น |
| ProxyBridge | 5,995 | การกำหนดเส้นทางพร็อกซีแบบโปร่งใสแยกตามโปรเซส — เป็นแรงบันดาลใจให้การยุติ MITM ที่ปลอดภัยเมื่อเกิดข้อขัดข้อง, การหมดเวลาเมื่อซ็อกเก็ตไม่มีการใช้งาน, การระบุโปรเซสผ่าน /proc และการดักจับด้วย TPROXY ของเรา |
📚 ข้อมูลโมเดล, ความสามารถในการสังเกตการณ์ และ UI
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มอบให้ OmniRoute |
|---|---|---|
| models.dev | 6,555 | ฐานข้อมูลแบบเปิดของข้อกำหนด ราคา และความสามารถของโมเดล AI — ซิงค์เข้าสู่แค็ตตาล็อกโมเดลของเราโดยตรง |
| React Flow / xyflow | 38,108 | ไลบรารีกราฟแบบโหนดที่ขับเคลื่อน Compression Studio และ Combo/Routing Studio แบบเรียลไทม์ของเรา |
| LangGraph | 40,314 | การแสดงภาพกราฟเวิร์กโฟลว์แบบสดของ LangGraph Studio เป็นแรงบันดาลใจให้มุมมองลำดับชั้นแบบเรียลไทม์ใน Studios ของเรา |
| Langfuse | 33,592 | โมเดลความสามารถในการสังเกตการณ์แบบ trace → span → generation ของโครงการนี้มีส่วนกำหนดมุมมอง waterfall ใน Compression Studio ของเรา |
| Kiali | 3,631 | ความสามารถในการสังเกตการณ์ของเซอร์วิสเมช Istio — เป็นแรงบันดาลใจให้แบดจ์ circuit-breaker และภาพแสดงขอบที่เกิดข้อผิดพลาดใน Routing/Combo Studio ของเรา |
| lobe-icons | 2,428 | โลโก้แบรนด์ AI/LLM ที่ใช้แสดงไอคอนผู้ให้บริการทั่วทั้งแดชบอร์ดของเรา |
| flag-icons | 12,354 | จัดเตรียมธง SVG ภายใต้สัญญาอนุญาต MIT ที่ใช้ในตัวเลือกภาษาของ README |
🛡️ ความปลอดภัย
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มอบให้ OmniRoute |
|---|---|---|
| awesome-secure-defaults | 721 | รายการไลบรารีที่คัดสรรมาแล้วซึ่งมีค่าเริ่มต้นที่ปลอดภัย และใช้เป็นแนวทางในการตัดสินใจด้านความปลอดภัยของเรา (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink) |
🧭 เครื่องมือเสริม
| โปรเจกต์ | ⭐ | แรงบันดาลใจที่มอบให้ OmniRoute |
|---|---|---|
| ClawRouter | 6,564 | เป็นแรงบันดาลใจให้การขจัดคำขอซ้ำ, กลไกสำรองฉุกเฉินที่ไม่มีค่าใช้จ่าย, กลยุทธ์ Auto-Combo แบบเสียบเปลี่ยนได้ และการจำแนกเจตนาแบบหลายภาษา |
| Antigravity-Manager | 30,652 | การแมปโมเดลใหม่โดยคำนึงถึงบัญชี, การตรวจสอบพาธของไฟล์ปฏิบัติการ และลักษณะการทำงานของป้ายกำกับแพ็กเกจ มีส่วนกำหนดรันไทม์ Antigravity ของ OmniRoute |
| vscode-antigravity-cockpit | 4,817 | รูปแบบนับถอยหลังการรีเซ็ตโควตาแบบกะทัดรัดของโครงการนี้เป็นแรงบันดาลใจให้การแสดงขีดจำกัดผู้ให้บริการที่สอดคล้องกันใน OmniRoute |
| AionUi | 32,230 | การผสานรวม ACP ของโครงการนี้เป็นแรงบันดาลใจให้ OmniRoute ตรวจหาเอเจนต์ CLI ที่ติดตั้งไว้โดยอัตโนมัติ |
| CodexBar | 20,507 | ช่วยระบุพื้นผิวโควตาของ Grok Build จากนั้น OmniRoute จึงตรวจสอบและแก้ไขรูปแบบข้อมูลที่ส่งจริงอย่างเป็นอิสระ |
📄 ใบอนุญาต
ใบอนุญาต MIT - ดูรายละเอียดได้ที่ LICENSE
⬆ กลับไปด้านบน · สร้างขึ้นด้วย ❤️ เพื่อชุมชน AI แบบโอเพนซอร์ส
OmniRoute v3.8.51 · Node ≥22.22.2 · ใบอนุญาต MIT · omniroute.online





