## 💰 ~1,62 Tỷ Token / Tháng Trên Các Gói Miễn Phí Của Bên Thứ Ba
> **Sử dụng tài khoản nhà cung cấp của riêng bạn.** Đây là tổng ước tính từ các gói miễn phí riêng biệt của bên thứ ba mà bạn đủ điều kiện sử dụng, không phải khoản token do OmniRoute cấp. Hãy đăng ký, lấy thông tin xác thực khi cần và kết nối các nhà cung cấp mà bạn có thể sử dụng; mỗi nhà cung cấp tự kiểm soát giới hạn, tính khả dụng và điều khoản của mình.
>
> Việc tự kết hợp các gói miễn phí rất phiền phức — hàng chục SDK, hàng chục giới hạn tốc độ và không biết bạn thực sự có bao nhiêu. OmniRoute lập danh mục **467 mục gói miễn phí trên 34 khóa nhóm định kỳ** và tính toán con số token nổi bật từ **17 nhóm có ngân sách hằng tháng dương được công bố cùng năm hạn mức Groq theo từng mô hình**, sau khi loại bỏ trùng lặp theo nhóm dùng chung. Các hạn ngạch chỉ được mở sau khi xác minh danh tính theo khu vực (hiện tại: ModelScope) được hiển thị riêng, +~6M sau bước xác minh danh tính theo khu vực và không bao giờ được cộng vào con số nổi bật. Kết quả luôn hiển thị trên bảng điều khiển (`/dashboard/free-tiers`).
> Bản tóm tắt động của trang `/dashboard/free-tiers` trực tiếp. Phương pháp đầy đủ (loại bỏ trùng lặp theo nhóm, các bậc tín dụng, điều khoản của nhà cung cấp): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Các số liệu này được kiểm toán lại hai tuần một lần dựa trên danh mục trực tiếp và **có thể thay đổi theo cả hai hướng** — khi một nhà cung cấp kết thúc gói miễn phí, con số sẽ giảm; khi có gói mới, con số sẽ tăng. Chúng tôi công bố đúng những gì danh mục thực sự tính toán, không bao giờ làm tròn lên theo trường hợp tốt nhất.
⭐ Hãy gắn sao cho kho mã nguồn nếu OMNIROUTE đã giúp bạn tiết kiệm tiền và làm việc dễ dàng hơn.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Tham gia cộng đồng
**👋 Theo dõi người bảo trì — nhận thông tin về nhà cung cấp mới, bản phát hành và mẹo sớm nhất:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Câu hỏi, mẹo về nhà cung cấp, lộ trình và hỗ trợ → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Toàn cầu](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Cổng thông tin](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Cổng kết nối không ngừng mở rộng
| | v3.8.50 | **v3.8.51** | `v3.8.53+` |
| --------------------------- | :-----------------------: | :---------: | :-------------------: |
| 🌐 Nhà cung cấp | 352 | **358** | 375 |
| 🧠 ID mô hình chat duy nhất | 1320 | **1374** | 1475 |
| 🖼️ Cầu nối phương thức | 🆕 vision + audio + video | ✓ | ✓ |
| 📡 Danh mục miễn phí Radar | 🆕 chọn tham gia | ✓ | ✓ |
| ⚖️ Lập lịch theo hạn mức | 🆕 Quota-Share | ✓ | ✓ |
| 📊 Đo lường hạn mức | 🆕 trực tiếp | ✓ | ✓ |
| 🧰 Chế độ headless | — | — | 🆕 `serve --headless` |
| 🛤️ Hạ tầng đường ray LTS | — | — | 🆕 các kênh phát hành |
| 🔎 API khám phá mô hình | — | — | 🆕 `/v1/models/query` |
**→ [Lộ trình](ROADMAP.md) — tiến dọc đường ray tới `v3.9.0 LTS`**
## 🆓 Cài đặt, kết nối một nhà cung cấp, rồi định tuyến qua một endpoint
```bash
# Sau khi kết nối một nhà cung cấp, hãy sao chép khóa OmniRoute của bạn từ Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` cần một tuyến đủ điều kiện. Một bản cài đặt mới có thể không có mục tiêu không cần khóa nào đủ điều kiện, và một nhà cung cấp không cần khóa có thể từ chối các ứng dụng khách bên thứ ba. Các nhà cung cấp được đánh dấu `tos: avoid`, bao gồm Kiro, bị loại khỏi định tuyến tự động theo mặc định; việc kết nối một tài khoản không ghi đè cài đặt đó. Xem [Hướng dẫn gói miễn phí](docs/getting-started/FREE-TIERS-GUIDE.md) trước khi chọn nhà cung cấp.📦 Các script quickstart sao chép-dán cho **Python, Node.js, PHP và cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Lời cam kết
# 🤔 Vì sao chọn OmniRoute?
## 🤝 Được hỗ trợ bởi những người bạn mã nguồn mở của chúng tôi
> **Bạn muốn tham gia với tư cách là một Người bạn mã nguồn mở?** Đây là những công ty ủng hộ mã nguồn mở và giúp OmniRoute tiếp tục hoạt động — và chúng tôi công khai nơi mọi khoản đóng góp của họ được sử dụng. Liên hệ: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Cảm ơn Kimi (Moonshot AI), Người bạn mã nguồn mở sáng lập của chúng tôi, đã ủng hộ dự án này! Kimi là phòng thí nghiệm AI đứng sau các dòng mô hình K2 và K3 có trọng lượng mở — Kimi K3 cung cấp cửa sổ ngữ cảnh 1M-token, tầm nhìn gốc và mã hóa cấp độ tiên tiến với chi phí thấp hơn nhiều so với các mô hình đóng, và hoạt động ngay lập tức với Claude Code, Codex và mọi công cụ mã hóa mà OmniRoute phục vụ.
Hỗ trợ của Kimi cung cấp: Các khoản tín dụng API của Kimi cung cấp năng lượng cho quy trình phát hành được AI xác thực của OmniRoute — giai đoạn xác thực hợp nhất được cung cấp bởi Kimi K3 xem xét mọi yêu cầu kéo trước khi nó được xuất bản — cộng với việc phát triển tính năng hàng ngày. Hỗ trợ Kimi hạng nhất được vận chuyển trên cả hai đường ray: API Kimi trực tiếp (kimi-k3) và gói mã hóa Kimi Code (OAuth và khóa API). OmniRoute cũng là dự án mã nguồn mở đầu tiên của Brazil trong chương trình hỗ trợ của Kimi. Nhận khóa API Kimi với 15% tín dụng bổ sung →
Cheaper Inference cheaperinference.com
Cảm ơn Cheaper Inference, một Người bạn mã nguồn mở của OmniRoute, đã ủng hộ dự án này! Cheaper Inference là một cổng xếp hạng chi phí bán lại 42 mô hình tiên tiến — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok và MiniMax — đằng sau một điểm cuối tương thích với OpenAI, định tuyến mỗi yêu cầu đến nhà cung cấp đủ điều kiện rẻ nhất mà không bao giờ tính phí cao hơn giá niêm yết của nhà sản xuất mô hình.
Hỗ trợ hạng nhất trong OmniRoute: Chat Completions, điểm cuối /v1/responses gốc, tầm nhìn, gọi công cụ và 3 mô hình hình ảnh (grok-imagine, nano-banana-pro, nano-banana-2, có thể truy cập dưới dạng cheaperinference/<model>). Nhận khóa API →
Các liên kết được gắn thẻ aff=omniroute là liên kết đối tác. Chúng tài trợ cho dự án mà không tốn thêm chi phí cho bạn. 🎟️ Khuyến mãi liên kết — phiếu đăng ký miễn phí từ các nhà cung cấp mà chúng tôi không tài trợ (nhấp để mở rộng)Phần này chỉ dành cho mã giới thiệu/phiếu giảm giá. Các đối tác tài trợ nằm trong phần 🤝 Được hỗ trợ bởi những người bạn mã nguồn mở của chúng tôi ở trên. OmniRoute không có bất kỳ sự tài trợ hoặc hợp tác nào với các nhà cung cấp được liệt kê ở đây — đây là các phiếu giảm giá công khai mà bất kỳ ai cũng có thể sử dụng.
AgentRouter agentrouter.org
AgentRouter — đăng ký liên kết · $100 tín dụng miễn phí khi đăng ký (máy chủ miễn phí, có thể có độ trễ cao hơn — tốt nhất để thử nghiệm, không phải sản xuất). Hỗ trợ hạng nhất trong OmniRoute kể từ v3.8.50: Chat Completions, định dạng dây tương thích với Anthropic và đường dẫn tương thích với OpenAI. Các mô hình có sẵn bao gồm claude-opus-4-8, claude-opus-5, gpt-5.6-sol và nhiều hơn nữa. Nhận $100 của bạn →
⚠️ Liên kết liên kết — OmniRoute không có bất kỳ sự tài trợ hoặc hợp tác nào với nhà cung cấp này.
Bạn có biết nhà cung cấp nào khác có phiếu đăng ký miễn phí hào phóng mang lại lợi ích cho người dùng OmniRoute không? Mở một vấn đề và chúng tôi sẽ thêm nó vào đây.
## 🎯 Combo — Tính năng chủ lực
> **Combo** là một chuỗi mô hình mà OmniRoute định tuyến qua **tự động**. Nếu hạn ngạch cạn, nhà cung cấp gặp sự cố hoặc chi phí tăng đột biến, combo có thể chuyển sang mô hình khả dụng và hoạt động ổn định tiếp theo. 🛡️
### ⚡ Không cần cấu hình — chỉ cần dùng `auto`
Không cần tạo combo. Đặt mô hình của bạn thành `auto` (hoặc một biến thể), OmniRoute sẽ xây dựng một combo ảo từ các nhà cung cấp đã kết nối và chấm điểm theo thời gian thực:
ID mô hình
Mục tiêu tối ưu hóa
auto
🎯 Mặc định cân bằng (LKGP — gắn với nhà cung cấp hoạt động tốt gần nhất)
auto/coding
🧑💻 Trọng số ưu tiên chất lượng khi sinh mã
auto/fast
⚡ Ưu tiên độ trễ thấp nhất
auto/cheap
💰 Ưu tiên chi phí thấp nhất trên mỗi token
auto/subscription
🎟️ Chỉ sử dụng hạn ngạch gói đăng ký mà bạn đã trả phí — đóng khi thất bại, không bao giờ chuyển dự phòng sang tùy chọn có thể phát sinh phí (hướng dẫn)
auto/thrifty
🪜 Ưu tiên hạn ngạch gói, sau đó chuyển từng bậc sang các tùy chọn trả phí rẻ nhất — quay lại gói sau khi hạn ngạch được đặt lại (hướng dẫn)
auto/offline
🔋 Ưu tiên dung lượng hạn ngạch / giới hạn tốc độ còn trống nhiều nhất
auto/smart
🔭 Ưu tiên chất lượng + 10% thăm dò để tìm các mô hình tốt hơn
auto/lkgp
📌 Chủ động duy trì nhà cung cấp hoạt động tốt gần nhất
auto/chaos
🧪 Phân nhánh song song đến một nhóm mô hình (mỗi nhà cung cấp một mô hình, mặc định là 5), trả về một câu trả lời; mỗi mô hình trong nhóm thực hiện một lệnh gọi thượng nguồn, không phải chèn lỗi
##
### 🔀 Hoặc tự xây dựng — 20 chiến lược định tuyến
Tất cả **20** chiến lược — kết hợp tùy ý theo từng bước của combo:
#
Chiến lược
Cách hoạt động
1
priority
Danh sách có thứ tự ưu tiên mục tiêu đầu tiên — dùng hết từng mục tiêu trước khi chuyển sang mục tiêu tiếp theo 🥇
2
fill-first
Dùng hết hạn ngạch của từng mục tiêu trước khi chuyển sang mục tiêu tiếp theo
3
weighted
Chọn ngẫu nhiên có trọng số theo trọng số của từng mục tiêu
4
round-robin
Luân phiên qua các mục tiêu theo thứ tự
5
p2c
Cân bằng tải ngẫu nhiên bằng phương pháp chọn một trong hai mục tiêu
6
least-used
Chọn mục tiêu có tải hiện tại thấp nhất
7
random
Chọn ngẫu nhiên đồng đều (loại bỏ mục trùng lặp)
8
strict-random
Chọn ngẫu nhiên mà không loại bỏ các lần lặp lại 🎲
9
cost-optimized
Giảm thiểu chi phí $ cho mỗi yêu cầu dựa trên giá trực tiếp trong danh mục 💸
10
headroom
Chọn mục tiêu có nhiều hạn ngạch còn lại nhất
11
quota-weighted
Bỏ qua các tài khoản đã cạn hạn ngạch, sau đó chọn theo tỷ lệ hạn ngạch còn lại ÷ tải đang xử lý — các cuộc trò chuyện hiện tại vẫn được ghim ⚖️
12
reset-window
Ưu tiên mục tiêu có chu kỳ hạn ngạch được đặt lại sớm nhất
13
reset-aware
Xếp hạng theo thời điểm đặt lại hạn ngạch — ưu tiên các chu kỳ ngắn 📊
14
context-relay
Chuyển tiếp ngữ cảnh giữa các mục tiêu cho những cuộc trò chuyện dài 🧠
15
context-optimized
Chọn mục tiêu phù hợp nhất với kích thước ngữ cảnh hiện tại
16
cache-optimized
Ghim từng tiền tố prompt có thể tái sử dụng vào cùng một tài khoản — tối đa hóa số lần trúng bộ nhớ đệm prompt 🎯
17
lkgp
Đường dẫn hoạt động tốt gần nhất — ghim vào nhà cung cấp thành công gần nhất, sau đó chuyển dự phòng theo các quy tắc
18
auto
Chấm điểm trực tiếp theo 16 yếu tố trên mọi kết nối 🤖
19
fusion
Phân nhánh đến một nhóm mô hình + một mô hình giám khảo tổng hợp thành một câu trả lời 🧬
20
pipeline
Nối chuỗi các bước — đầu ra của mỗi mục tiêu được chuyển làm đầu vào cho mục tiêu tiếp theo 🔗
Công cụ Auto-Combo chấm điểm từng ứng viên dựa trên **16 yếu tố** (tình trạng, hạn mức, chi phí, độ trễ, mức độ phù hợp với tác vụ, chất lượng, tính khả dụng của phiên…) — xem [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Khả năng phục hồi được tích hợp sẵn (3 lớp độc lập)
📖 [Công cụ Auto-Combo](docs/routing/AUTO-COMBO.md) · [Hướng dẫn về khả năng phục hồi](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Điều gì làm nên sự khác biệt của OmniRoute
📊 Phương pháp luận đầy đủ & chi tiết theo từng tính năng so với 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Hỗ trợ OmniRoute
OmniRoute được cấp phép theo MIT và được duy trì công khai. Nếu dự án giúp bạn tiết kiệm thời gian hoặc tiền bạc, đây là cách để giúp dự án duy trì tính độc lập — hãy chọn phương thức phù hợp với bạn. Việc tài trợ không bao giờ ảnh hưởng đến mức độ ưu tiên định tuyến; nó mang lại khả năng hiển thị, không phải thứ hạng.
**🇧🇷 PIX** — tức thì, không mất phí (Brazil)
Khóa (ngẫu nhiên): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix sao chép và dán:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Tiền mã hóa — BTC · ETH · USDT-TRC20 · USDC-Solana (nhấp để mở rộng)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Chỉ gửi từng loại tiền trên đúng mạng được hiển thị — gửi sai mạng có thể làm mất tiền.
🐛 Bạn phát hiện lỗi hoặc có phản hồi? Hãy mở một [Thảo luận](https://github.com/diegosouzapw/OmniRoute/discussions).
Ghi chú dành cho nhà phát triển: Dự án có thể tạo tệp .env cục bộ trong quá trình npm install/postinstall để thuận tiện cho nhà phát triển. Tệp này được chủ ý bỏ qua thông qua .gitignore (xem .gitignore) và tuyệt đối không được commit — nếu vô tình commit, hãy thay đổi mọi thông tin bí mật đã bị lộ và xóa tệp khỏi lịch sử. Xem docs/DEVELOPER-ENVIRONMENT.md để biết hướng dẫn về cách quản lý các tệp môi trường cục bộ và thông tin bí mật.
## 📡 OmniRoute Radar
Tiêu điểm chính của gói miễn phí vẫn là **~1.62B token/tháng** từ danh mục đã được lập tài liệu và loại bỏ trùng lặp theo nhóm ở trên. Khoản tín dụng đăng ký tạm thời của nhà cung cấp có thể giúp riêng tháng đầu tiên tăng lên **~2.22B**. Radar là một lớp phủ danh mục tùy chọn, có chữ ký, dành cho những người muốn cập nhật nhanh hơn về tình trạng sẵn có của các mô hình miễn phí giữa các bản phát hành OmniRoute; danh mục cộng đồng và mọi tính năng miễn phí hiện có vẫn hoàn toàn miễn phí.
Những người ủng hộ có thể nhận danh mục trực tiếp và các cơ hội bổ sung từ nhà cung cấp. Mức trần riêng, có thể thay đổi của danh mục này là **tối đa khoảng 3B token/tháng**, tùy thuộc vào tình trạng sẵn có của nhà cung cấp. Mức trần đó không phải là sự bảo đảm: nhà cung cấp có thể thay đổi hạn ngạch, điều kiện đủ tư cách, mô hình hoặc khu vực bất cứ lúc nào.
Radar hoạt động theo cơ chế chọn tham gia và chỉ sử dụng GET. Ứng dụng khách OmniRoute không tải lên prompt, lưu lượng truy cập, cấu hình nhà cung cấp, dữ liệu đo từ xa về mức sử dụng hoặc trạng thái cục bộ về việc bỏ qua thông báo. Tìm hiểu về điều kiện đủ tư cách và danh mục hiện tại tại **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Có gì mới
> Những điểm nổi bật gần đây từ **v3.8.20 → v3.8.53**. Toàn bộ lịch sử trong [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ Định tuyến `quota-weighted`** — chiến lược combo thứ 20 bỏ qua các tài khoản đã cạn, sau đó chọn trong số còn lại theo tỷ lệ quota còn lại ÷ tải đang xử lý, giữ các cuộc hội thoại hiện có được ghim. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Chế độ headless** — `omniroute serve --headless` (hoặc `OMNIROUTE_HEADLESS=1`) chỉ chạy engine proxy `/v1/*`, tắt dashboard và các hệ thống con chỉ dành cho dashboard. → [Chế độ Headless](docs/guides/HEADLESS.md)
- **🔎 Khám phá mô hình** — `/v1/models` lọc theo năng lực, ngữ cảnh, loại và văn bản, và `POST /v1/models/query` trả về một danh sách rút gọn ngắn mang tính xác định với cùng khả năng hiển thị theo từng key. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🔑 Điều khiển định tuyến theo từng key** — ghim một API key vào một mô hình hoặc combo bằng `forcedModel`, và thêm hoặc xóa mô hình và combo của một key một cách nguyên tử (`/api/keys/{id}/access`). → [Tham chiếu API](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Kiểm soát PII tinh vi hơn** — lựa chọn theo từng loại, tối đa 20 mẫu che dữ liệu tùy chỉnh đã được xác thực và bộ đếm phát hiện theo từng loại; bản thân việc che dữ liệu vẫn là tùy chọn bật. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 ngôn ngữ** — dashboard, bản sao tài liệu và CLI, với `npm run i18n:add-locale` thêm một ngôn ngữ ở mọi nơi chỉ bằng một lệnh. → [Hướng dẫn i18n](docs/guides/I18N.md)
- **🎛️ OmniConductor** — ủy quyền A2A đến cho đội agent của bạn, các kỹ năng Conductor trên Agent Card và một bảng điều khiển dashboard với trò chuyện thoại nhấn-để-nói Faro. → [Máy chủ A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Tiếp nhận thích ứng & bảo vệ quá tải** — các yêu cầu trò chuyện hạng nặng xếp hàng thay vì trả 503, với lease luân chuyển RPM nguyên tử theo từng kết nối. → [Hướng dẫn khả năng phục hồi](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Thứ tự chuẩn của `/v1/models`** — một khối liền mạch được nhóm theo provider cho mỗi provider (các combo được ghim trước), ổn định trên mọi nguồn catalog. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🗜️ Gia cố nén** — guard chống phình bật mặc định, gói Caveman cho DE / FR / JA + tiếng Trung (wényán), bộ lọc RTK cho Gradle & .NET. → [Nén](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Chi phí flat-rate trung thực** — các provider gói đăng ký / gói coding hiển thị **$0** trong phân tích chi phí; ngân sách, quota & định tuyến vẫn tiếp tục ước tính. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **⚖️ Định tuyến Quota-Share** — chia quota của tài khoản dùng chung một cách công bằng giữa các key trong pool, theo hướng tận dụng công suất nhờ đó các phần quota nhàn rỗi được cho mượn. → [Hướng dẫn khả năng phục hồi](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Thiết lập CLI/agent bằng một lệnh** — 15 lệnh `setup-*` đã đăng ký; `omniroute run` khởi chạy 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` hỗ trợ 11 mục tiêu với bộ chọn provider+mô hình tương tác và mục yêu thích theo từng ngữ cảnh. → [Tích hợp CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Chế độ từ xa** — điều khiển OmniRoute từ xa bằng token có phạm vi (`connect` / `contexts` / `tokens`) + một helper OAuth `antigravity` cho cài đặt VPS. → [Chế độ từ xa](docs/guides/REMOTE-MODE.md)
- **🧭 Định tuyến tự động thông minh hơn** — combo `auto/:`, **Fusion** (bảng mô hình + giám khảo), định tuyến nhận biết tác vụ, ghi đè mô hình / chế độ / ngân sách USD theo từng yêu cầu. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Nén cắm ghép được** — 12 engine có thể kết hợp + Compression Studios: LLMLingua-2, Ultra hai tầng, omniglyph, cổng độ trung thực theo từng bước, GCF v3.2, trình chỉnh sửa sắp xếp bằng kéo-thả. → [Nén](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Giải mã MITM minh bạch (TPROXY)** — bắt các CLI bỏ qua biến môi trường proxy, với CA theo từng SNI + trình cài đặt trust-store. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetry chi phí ở mọi nơi** — header chi phí/sử dụng `X-OmniRoute-*` trên mọi endpoint, header tiết kiệm cache-HIT, quota chi tiêu USD theo từng key. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🧠 Bộ nhớ do bạn kiểm soát** — tắt mặc định, lượng tử hóa vector int8 + decay có kiểu là tùy chọn bật, `x-omniroute-no-memory` theo từng yêu cầu. → [Bộ nhớ](docs/frameworks/MEMORY.md)
- **🛡️ Bảo mật** — guard chống prompt-injection trên mọi route LLM (bộ kiểm thử red-team), guardrail che thông tin xác thực là tùy chọn bật (che các API key/bí mật bị lộ theo cả hai chiều), tìm kiếm web dự phòng cuối cùng bằng DuckDuckGo miễn phí và cổng đăng nhập OIDC tùy chọn cho dashboard (đăng nhập bằng mật khẩu luôn khả dụng). → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ Endpoint mới** — `/v1/ocr` (Mistral OCR) và `/v1/audio/translations` (kiểu Whisper) hoàn thiện bề mặt media. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🎨 Tạo hình ảnh / video / âm thanh** — một API cho media: video xAI Grok Imagine & Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind và các provider giọng nói như ElevenLabs. → [Tham chiếu API](docs/reference/API_REFERENCE.md)
- **🌍 Triển khai & vận hành** — `basePath` reverse-proxy, tự động phát hiện ngôn ngữ trình duyệt, theo dõi thiết bị theo từng key, tin cậy MITM không cần root, bản địa hóa zh-TW. → [Môi trường](docs/reference/ENVIRONMENT.md)
- **🤝 Nhiều provider & agent hơn** — agent đám mây (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) với đăng nhập bằng trình duyệt + OAuth, card hạng nhất cho Ollama, Claude Opus 5 & Sonnet 5, quan hệ đối tác chính thức với Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… và **danh mục 375 provider** được làm mới. → [Provider](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Minh bạch định tuyến** — mọi phản hồi mang header `X-OmniRoute-Decision` nêu tên chiến lược/provider/độ trễ đã phục vụ nó, một chiến lược combo `cache-optimized` mới + yếu tố `cacheAffinity` của Auto-Combo định tuyến các yêu cầu lặp lại về kết nối đang giữ prefix đã cache, và endpoint chỉ đọc `/v1/auto-combo/{channel}/candidates` hiển thị pool ứng viên trực tiếp của kênh `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Hiệu năng & hạ tầng cục bộ** — Redis cục bộ một cú nhấp, trình triển khai relay Cloudflare Workers / Deno Deploy, Bifrost & Mux dưới dạng dịch vụ nhúng được giám sát. → [Dịch vụ nhúng](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Còn có trong gói** — khung plugin + marketplace, các khung kỹ năng Omni/Agent/GitHub, tích hợp Obsidian vault (22 công cụ MCP), API Batch & Files tương thích OpenAI, bộ nhớ đệm phản hồi ngữ nghĩa, trò chơi hóa với bảng xếp hạng, khám phá tác nhân ACP (15 tác nhân tích hợp sẵn), xuất log theo lịch lên BigQuery, `auto/chaos` fan-out song song đa mô hình, cầu nối bot Telegram, trình quản lý phiên bản trong ứng dụng và bảng xếp hạng nhà cung cấp miễn phí theo LMArena-ELO. → [Tài liệu](docs/README.md)
## 🤖 Các CLI & tác nhân lập trình tương thích
> Một cấu hình — `http://localhost:20128/v1` — và **mọi** IDE hoặc CLI AI đều chạy được với các mô hình miễn phí & chi phí thấp.
+ cũng hoạt động với · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · mọi công cụ tương thích với OpenAI
📖 Thiết lập riêng cho từng công cụ trong tổng số 37 công cụ (27 CLI Code + 10 CLI Agent) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Khởi chạy bất kỳ CLI nào được hỗ trợ thông qua OmniRoute chỉ bằng một lệnh** — không ghi tệp cấu hình,
thông tin xác thực được chèn riêng cho từng tiến trình, Qwen/Gemini sử dụng thư mục home cô lập dùng một lần:
```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"
# Hoặc chọn nhà cung cấp+mô hình theo cách tương tác và ghi cấu hình riêng của công cụ:
omniroute configure codex # cũng hỗ trợ: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Mọi lệnh đều tuân theo ngữ cảnh từ xa đang hoạt động (`omniroute connect `), `--dry-run`
cho phép xem trước chính xác các biến môi trường/đối số mà không thực thi, còn `--api-key-env NAME` giúp thông tin bí mật
không xuất hiện trong lịch sử shell của bạn. → [Tích hợp CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 Nhà cung cấp AI — 153 được đánh dấu Miễn phí trong Danh mục
> **375 nhà cung cấp đã đăng ký** trải khắp các bộ sưu tập chuẩn chat, media, search, local, cloud-agent và system, bao gồm **153 nhà cung cấp mang metadata khám phá `hasFree: true`**. Sổ đăng ký mô hình chat bao gồm **239 nhà cung cấp / 3.059 cặp nhà cung cấp-mô hình riêng biệt / 1.475 ID mô hình thô**; danh mục ngân sách miễn phí riêng có **467 dòng theo từng mô hình**, **34 nhóm tái diễn** và **51 nhà cung cấp miễn phí vĩnh viễn tái diễn/không cần khóa**. Đây là những mẫu số khác nhau theo thiết kế; định nghĩa và các phép tính đã khử trùng lặp theo nhóm nằm trong [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) và [Free Tiers](docs/reference/FREE_TIERS.md).
### 🏢 Mọi phòng thí nghiệm lớn — qua một điểm cuối duy nhất
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…và hơn 350 nhà cung cấp nữa — mọi biểu tượng được phân giải trực tiếp từ danh mục nhà cung cấp của dashboard. 📖 [Provider Reference](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Miễn phí vĩnh viễn — $0, không cần thẻ
OpenCode Zen DeepSeek V4, Nemotron 3 Không giới hạn token
Kilo Code Bộ định tuyến tự động, Tencent Hy3 Miễn phí vĩnh viễn
Qoder AI Qwen3-Max, Kimi-K2 MIỄN PHÍ không giới hạn
Pollinations GPT, Llama, Claude Không cần key
Cloudflare AI Hơn 50 mô hình 10K neurons/ngày
NVIDIA NIM GLM, MiniMax ~40 RPM miễn phí
Cerebras GLM 4.7, GPT-OSS Tín dụng $5 một lần; cần thẻ
OpenRouter Các mô hình :free +$10 → RPM cao hơn
📖 Danh mục đầy đủ dạng máy đọc được → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ OmniRoute Chạy Ở Đâu — Mọi Nơi
> Cùng một ứng dụng, máy của bạn, quy tắc của bạn. Từ cài đặt npm toàn cục đến **điện thoại của bạn** thông qua Termux.
Nền tảng
Cài đặt
Điểm nổi bật
📦 npm (toàn cục)
npm install -g omniroute
Một lệnh, mọi hệ điều hành
🐳 Docker
docker run … diegosouzapw/omniroute
Đa kiến trúc AMD64 + ARM64
🖥️ Máy tính để bàn (Electron)
npm run electron:build
Cửa sổ gốc + khay hệ thống — Windows / macOS / Linux
🎩 Thanh menu (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Giám sát & tự động cập nhật máy chủ — macOS
💪 ARM
arm64 nguyên bản
Raspberry Pi, máy chủ ARM, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Chạy trên điện thoại của bạn, 24/7, không cần root
📲 PWA
"Thêm vào màn hình chính"
Toàn màn hình, ngoại tuyến, có thể cài đặt từ trình duyệt
🧩 Plugin OpenCode
@omniroute/opencode-provider
Tích hợp OpenCode nguyên bản
🤖 VS Code Copilot Chat
cài đặt tiện ích mở rộng OmniCopilot
Mọi mô hình OmniRoute trong bộ chọn Copilot Chat nguyên bản — bản ổn định & Insiders
🛠️ Từ mã nguồn
npm install && npm run dev
Tùy biến, đóng góp
📖 [Hướng dẫn Docker](docs/guides/DOCKER_GUIDE.md) · [Máy tính để bàn](electron/README.md) · [Khay thanh menu](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 Mới: OmniRoute bên trong Copilot Chat nguyên bản của VS Code
> Không có thanh bên mới, không có giao diện trò chuyện mới — mọi mô hình do OmniRoute cung cấp đều xuất hiện ngay trong
> **bộ chọn mô hình Copilot Chat mà bạn đã sử dụng**. Kể từ VS Code 1.122, các mô hình của nhà cung cấp hoạt động
> mà không cần đăng nhập GitHub hoặc đăng ký Copilot — chế độ tác nhân, gọi công cụ và thị giác, hoàn toàn
> miễn phí.
Cài đặt tiện ích mở rộng **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, trỏ tiện ích
đến máy chủ OmniRoute của bạn (mặc định là `localhost:20128`), sau đó mở Copilot Chat → bộ chọn mô hình
→ **Quản lý mô hình…** → **OmniRoute**.
Từ bên trong trình soạn thảo: mở chế độ xem **Tiện ích mở rộng**, tìm kiếm **"OmniRoute"**, nhấp vào **Cài đặt**
— hoạt động theo cùng một cách trên cả hai cửa hàng. Mã nguồn, các vấn đề và tài liệu quy trình phát hành nằm tại
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Hướng dẫn VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — thiết lập, nội dung bộ chọn hiển thị, bảng điều khiển trong một tab, khắc phục sự cố
### 🎩 Mới: OmniRouteTray — cổng kết nối của bạn, nằm ngay trên thanh menu
> `omniroute serve` hoạt động tốt nhất khi luôn được bật. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> biến việc đó thành một ứng dụng thanh menu chỉ cần thiết lập một lần trên macOS: ứng dụng khởi động máy chủ, duy trì hoạt động
> sau khi khởi động lại, cập nhật tại chỗ và giúp bạn xem ngân sách token trực tiếp chỉ với một cú nhấp chuột — **không
> cần để cửa sổ dòng lệnh mở, không cần trông chừng `npm install -g omniroute`.**
Được xây dựng bằng [Tauri v2](https://v2.tauri.app/) (lõi Rust nhỏ đến mức có thể xem như sai số làm tròn), ứng dụng đi kèm
môi trường chạy Node 24 đã được ký riêng và quản lý bản cài đặt OmniRoute thuộc sở hữu của ứng dụng, vì vậy không bao giờ xung đột với
`node`/`bun` toàn cục của bạn. Ứng dụng **dùng chung cấu hình và cơ sở dữ liệu `~/.omniroute/` hiện có của bạn** — vì vậy đây vẫn là
OmniRoute mà bạn đang chạy, chỉ là được đội thêm một chiếc mũ. 🎩
Chức năng
Cách thức
🟢 Giám sát máy chủ
Khởi tạo omniroute serve, tiếp quản phiên bản đang chạy thay vì tạo bản trùng lặp
📊 Xem nhanh mức sử dụng trực tiếp
Thanh hạn mức nhà cung cấp, giới hạn phiên/hàng tuần của Claude kèm đếm ngược thời gian đặt lại, phân tích chi phí trong 30 ngày
🔄 Tự động cập nhật tại chỗ
Cài đặt theo giai đoạn, hoán đổi nguyên tử, hoàn tác khi thất bại — luôn sử dụng bản phát hành mới nhất
🚀 Khởi động khi đăng nhập
Tùy chọn khởi chạy khi đăng nhập; chỉ hiển thị ở khay, không có biểu tượng trên dock
🩺 Chẩn đoán & nhật ký
Chẩn đoán chỉ với một cú nhấp chuột và truy cập nhật ký máy chủ
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Muốn tải xuống? Hãy lấy tệp .dmg mới nhất từ
Bản phát hành. Mã nguồn, các vấn đề và tài liệu
hướng dẫn build có tại zoispag/omniroute-tray.
💛 Một dự án cộng đồng của @zoispag — không phải là bản phát hành OmniRoute chính thức.
> Không chỉ là một máy chủ, OmniRoute còn là một **buồng điều khiển dòng lệnh đầy đủ** với **hơn 80 lệnh**, cùng các giao thức tác nhân mở để một tác nhân AI có thể **tự vận hành**.
### ⌨️ Một CLI thực thụ (không chỉ có `start`)
```bash
omniroute # chạy gateway + bảng điều khiển (cổng 20128)
omniroute chat # trình chat TUI tương tác (lệnh gạch chéo: /model /combo /skill /memory)
omniroute setup # trình hướng dẫn thiết lập cho lần chạy đầu tiên
omniroute doctor # chẩn đoán nhà cung cấp, cổng, các phần phụ thuộc native
```
### 🛰️ Chế độ từ xa — chạy CLI tại đây, OmniRoute trên VPS
OmniRoute đang chạy trên máy chủ? Điều khiển nó từ laptop của bạn bằng **chính CLI đó**. Đăng nhập một lần
bằng token truy cập có phạm vi; sau đó mọi lệnh đều nhắm đến máy chủ từ xa.
```bash
omniroute connect 192.168.0.15 # mật khẩu → token có phạm vi, được lưu dưới dạng ngữ cảnh
omniroute models # ← chạy trên máy chủ TỪ XA
omniroute configure codex # ← chọn mô hình từ xa, ghi hồ sơ Codex cục bộ
omniroute tokens create --name ci --scope read # tạo token có phạm vi hẹp hơn cho các máy khác
omniroute contexts use default # ← chuyển về máy chủ cục bộ
```
Token có phạm vi `read` / `write` / `admin`; các route khởi tạo tiến trình vẫn chỉ được phép trên loopback.
📖 [Chế độ từ xa](docs/guides/REMOTE-MODE.md)
### 🤝 Kết nối một tác nhân — và tác nhân đó sẽ tự điều khiển OmniRoute
Cung cấp OmniRoute qua **MCP**, **A2A**, **REST API**, **webhook** hoặc **CLI từ xa** — bất kỳ tác nhân đủ năng lực nào (hoặc mã của riêng bạn) cũng có quyền điều khiển toàn bộ gateway: định tuyến, nhà cung cấp, combo, bộ nhớ đệm, nén, bộ nhớ — một cách tự động. Các endpoint HTTP bên dưới được phục vụ tại `http://localhost:20128`.
Giao diện
Endpoint / lệnh
Dùng để
🧰 MCP (stdio)
omniroute --mcp
Tích hợp với Claude Desktop, Cursor hoặc bất kỳ máy khách MCP nào
🌊 MCP (HTTP)
/api/mcp/stream
MCP từ xa — 110 công cụ, 33 phạm vi (tùy chọn bật thực thi), nhật ký kiểm tra đầy đủ
📡 MCP (SSE)
/api/mcp/sse
Phương thức truyền tải MCP dạng streaming
🤝 A2A
/.well-known/agent.json
Tác nhân với tác nhân, JSON-RPC 2.0 + SSE, 6 kỹ năng
🌐 REST API
/v1/*
Tương thích với OpenAI — chat, embedding, hình ảnh, âm thanh, OCR
🔔 Webhook
/api/webhooks
Đẩy các sự kiện yêu cầu / hạn ngạch đến Slack, Discord, Telegram hoặc bất kỳ URL nào
🛰️ CLI từ xa
omniroute connect
Điều khiển một phiên bản từ xa bằng token truy cập có phạm vi
```bash
# Cung cấp cho Claude Code toàn bộ bộ công cụ OmniRoute qua MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [Máy chủ MCP](docs/frameworks/MCP-SERVER.md) · [Máy chủ A2A](docs/frameworks/A2A-SERVER.md) · [Giao thức tác nhân](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Tiết kiệm 15–95% token — Tự động
### 📖 Cách hoạt động — pipeline, kiến trúc & phép tính tiết kiệm
Combo xếp chồng mặc định chạy `RTK → Caveman`. Khi cả hai cùng tác động lên một payload tool/context, mức tiết kiệm cộng dồn:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Code block, URL, JSON và dữ liệu có cấu trúc **luôn được bảo vệ** bởi engine bảo toàn.
> **Vì sao phải dùng nhiều token khi chỉ vài token là đủ?** Mọi yêu cầu đều đi qua pipeline nén của OmniRoute **một cách trong suốt** — không cần thay đổi phía client. Nó giờ là **một chồng gồm 12 engine có thể kết hợp** chạy theo thứ tự và trộn lẫn tùy theo combo định tuyến — dựa trên ý tưởng từ [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua), và [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Chồng 12 engine
Các engine chạy theo thứ tự pipeline; mỗi engine có thể bật/tắt độc lập và cấu hình riêng theo từng combo:
#
Engine
Chức năng
1
Session-Dedup
Loại bỏ nội dung lặp lại qua các lượt (định địa chỉ theo nội dung, xuyên lượt)
2
CCR
Lưu trữ các khối lớn phía sau các marker truy xuất, được tải theo yêu cầu
3
Lite
Cắt gọn khoảng trắng + URL hình ảnh (baseline nhẹ về độ trễ)
4
RTK
Lọc kết quả tool thông minh, khử trùng lặp & cắt bớt (nhận biết lệnh)
5
Responses Tool Output
Nén JSON ưu tiên không mất mát + nén chẩn đoán có giới hạn cho output shell/patch/search/build (Responses API)
6
Headroom
Nén bảng không mất mát các mảng JSON (~30%) qua codec GCF được nhúng kèm
7
Relevance
Chấm điểm trích xuất câu dựa trên truy vấn người dùng cuối cùng
8
Caveman
Nén văn xuôi theo quy tắc (~65–75% trên output)
9
Aggressive
Tóm tắt + làm cũ dần các lượt cũ
10
LLMLingua-2
Cắt tỉa ngữ nghĩa bằng ML qua MobileBERT ONNX — an toàn với code, bất đồng bộ
11
Ultra
Cắt tỉa token theo heuristic với tầng mô hình nhỏ (SLM) tùy chọn
12
OmniGlyph
Mã hóa context-dưới-dạng-hình-ảnh thử nghiệm cho Claude Fable 5 đã đo được trên kênh Anthropic trực tiếp; các transformer GPT 5.6 vẫn fail-closed chờ biên nhận từ nhà cung cấp. Bốn profile nén (mặc định aggressive, balanced, coding-safe, passthrough) (hung hăng nhất; chọn tham gia)
Code block, URL và dữ liệu có cấu trúc **luôn được bảo toàn** chính xác đến từng byte. **Preset một cú nhấp** kết hợp các engine:
Chế độ
Tiết kiệm
Phù hợp nhất cho
🪶 Lite
~15%
Mặc định an toàn luôn bật
🪨 Standard (Caveman)
~30%
Lập trình hằng ngày
⚡ Aggressive
~50%
Phiên dài nhiều tool
🔥 Ultra
~75%
Tiết kiệm tối đa
🧰 RTK
60–90%
Output shell/test/build/git
🔗 Stacked (RTK → Caveman)
78–95%
Prompt hỗn hợp + log tool
**Ví dụ thực tế — chế độ Standard:**
> **Trước (69 token):** _"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I would recommend using useMemo to memoize the object."_
>
> **Sau (19 token):** _"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."_
>
> **Cùng câu trả lời. Ít hơn 72% token. Không mất độ chính xác.** ✅
**Ví dụ PT-BR — chế độ [Troglodita](https://github.com/leninejunior/troglodita):**
> **Trước (42 token):** _"Vấn đề là component đang re-render vì một tham chiếu object mới được tạo ở mỗi chu kỳ render. Tôi khuyên dùng useMemo."_
>
> **Sau (12 token):** _"Re-render: ref mới mỗi chu kỳ (object inline được tạo lại). Dùng `useMemo`."_
>
> **Cùng câu trả lời. Ít hơn ~70% token. Độ chính xác kỹ thuật nguyên vẹn.** ✅
### 🎚️ Ngoài các engine — output styles, adaptive dial & điều khiển theo từng request
12 engine ở trên thu nhỏ những gì đi **vào**. Ba lớp nữa định hình **cách**, **khi nào**, và những gì đi **ra**:
- **🪄 Output Styles** _(điều hướng trục output)_ — inject các instruction định hình phản hồi có tính xác định, an toàn với cache; có thể kết hợp, mỗi style ở cường độ `lite` / `full` / `ultra`. Thêm một style là một entry registry một dòng:
- **Terse prose** — bỏ filler / articles / hedging; giữ nguyên chính xác nội dung kỹ thuật.
- **Less code** — YAGNI kiểu "lazy senior dev": thay đổi nhỏ nhất còn hoạt động, không scaffolding không được yêu cầu.
- **Ponytail (lazy senior dev)** — leo thang YAGNI, sửa nguyên nhân gốc, diff nhỏ nhất còn hoạt động.
- **I have ADHD (hành động trước)** — bước tiếp theo dẫn đầu, các bước được đánh số, một bước tiếp theo cụ thể, không mở đầu.
- **Terse CJK (文言)** — phong cách siêu ngắn gọn Hán cổ (giới hạn theo locale `zh`).
- **🎯 Adaptive context-budget** _(the dial)_ — thay vì một ngưỡng token on/off duy nhất, chỉ nâng dần các engine rẻ nhất, ít mất mát nhất đến mức cần thiết để **vừa với context window của model**. Policy: `reserve-output` (mặc định, nhận biết model) · `percentage` · `absolute`. Mode: `floor` (đảm bảo vừa) · `replace-autotrigger` (lựa chọn tường minh của bạn thắng) · `off` (ngưỡng cũ).
- **🎛️ Nơi quyết định nén** _(thứ tự ưu tiên, cao → thấp)_ — header `x-omniroute-compression` theo từng request › ghi đè routing-combo › profile có tên đang hoạt động › adaptive / auto-trigger › mặc định của panel › off. Plan được áp dụng sẽ được echo lại trong response header `X-OmniRoute-Compression: ; source=`.
Auto-trigger theo ngưỡng token, bật adaptive dial, ghim một profile có tên, đặt một lần cho từng request, hoặc gán pipeline cho từng routing combo — tùy cách nào phù hợp với workload. Một **eval harness** offline opt-in (`npm run eval:compression`) chấm điểm độ trung thực so với mức tiết kiệm trên một corpus được ghim trước khi bạn đưa một thay đổi vào sử dụng.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Bắt đầu nhanh
**1) Cài & chạy**
```bash
npm install -g omniroute
omniroute
```
> 💡 Thấy `npm warn ERESOLVE` hoặc cảnh báo peer-dep? [Chúng vô hại](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Dùng npm 11 trở lên?** npm có thể chặn các lifecycle script của package trừ khi chúng được cho phép. `postinstall` của OmniRoute (`node scripts/build/postinstall.mjs`) là bắt buộc để chuẩn bị các file runtime gốc của nó. Hãy cho phép các package được nêu trong cảnh báo của npm khi cài đặt toàn cục. Với tập package được báo cáo bởi OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Để tái sử dụng allowlist này cho các lần cài đặt toàn cục sau, cấu hình một lần, rồi cài đặt bình thường:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Danh sách dependency có thể thay đổi giữa các bản phát hành; nếu npm báo một danh sách khác, hãy dùng tên package từ cảnh báo đó. Việc cho phép một package sẽ cho phép các install script của nó chạy.
> **Dùng Gemini Web hoặc một web-cookie provider khác?** Package npm có bao gồm Playwright nhưng không có binary Chromium của nó. Xem ghi chú [Playwright Chromium setup](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) trước khi thực hiện request web-provider đầu tiên.
Dashboard tại `http://localhost:20128` · API tại `http://localhost:20128/v1`.
**2) Kết nối một provider đủ điều kiện bằng tài khoản của riêng bạn**
Dashboard → **Providers** → chọn một provider có điều khoản và quota hiện tại phù hợp với use case của bạn → thêm API key của nó hoặc hoàn tất luồng tài khoản. Các gói miễn phí có thể yêu cầu đăng ký, phê duyệt hoặc một phương thức thanh toán. Xem [Free Tiers Guide](docs/getting-started/FREE-TIERS-GUIDE.md); tính khả dụng không cần key không được đảm bảo, và các provider được đánh dấu `tos: avoid` bị loại khỏi `auto` theo mặc định.
**3) Trỏ công cụ coding của bạn**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Xác minh nó hoạt động**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Bạn sẽ thấy các model đã kết nối được liệt kê. 🎉 Vậy là xong — bắt đầu code, OmniRoute sẽ tự động route & fallback cho bạn.
Nếu client của bạn không thể gửi custom header, OmniRoute cũng cung cấp các alias tương thích dạng token:
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Chỉ dùng những alias này cho các client không thể đính kèm `Authorization: Bearer ...`. Xác thực qua header vẫn là chế độ được ưu tiên.
## 📦 Các phương thức cài đặt khác — Docker, mã nguồn, 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` luôn trỏ đến phiên bản SemVer ổn định **đã phát hành** cao nhất. Thẻ này không theo dõi nhánh git `main`. Hãy ghim `:X.Y.Z` khi dùng GitOps. Xem [Các kênh phát hành Docker](docs/guides/DOCKER_GUIDE.md#release-channels). Image ghim **`OMNIROUTE_MEMORY_MB=1024`**. Mức này đủ cho bảng điều khiển và các cuộc trò chuyện nhẹ. **Các tác nhân lập trình** (`POST /v1/responses` từ Claude Code, Codex, Grok, …) cần heap V8 lớn hơn nhiều, nếu không tiến trình sẽ gặp `FATAL ERROR` ở mức khoảng 12 GiB khi có hai ngữ cảnh dài chồng lấn. Hãy đặt giới hạn bộ nhớ container cao hơn heap (các bộ đệm native nằm ngoài V8):
| Khối lượng công việc | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| --------------------------------- | ------------------------------- | ---------------------- |
| Bảng điều khiển / trò chuyện nhẹ | `1024` (mặc định của image) | ≥2 g |
| Một tác nhân lập trình | `8192` | ≥10 g |
| Hai `/v1/responses` dài đồng thời | `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
```
Bảng đầy đủ: [Hướng dẫn Docker — RAM khi chạy](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Kênh Docker tiền phát hành:** `diegosouzapw/omniroute:next` và
> `diegosouzapw/omniroute:next-web` theo dõi nhánh `release/v*` mặc định hiện tại.
> Các thẻ có thể thay đổi này chỉ dành cho việc kiểm thử các bản sửa lỗi chưa phát hành và
> **không được hỗ trợ cho môi trường production**. Xem
> [Các kênh phát hành Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
`bun install` tiêu chuẩn và cài đặt toàn cục (`bun install -g omniroute`) được hỗ trợ thông qua cơ chế phát hiện runtime Bun:
- **`bun:sqlite` tích hợp sẵn**: OmniRoute sử dụng driver `bun:sqlite` tích hợp sẵn của Bun khi chạy trên Bun và chuyển sang `better-sqlite3` trên Node.js hoặc `sql.js` nếu cần.
- **Tự động chọn trình đóng gói Webpack trong môi trường phát triển**: Chế độ phát triển (`bun run dev`) tự động phát hiện Bun và tắt Turbopack để chuyển sang Webpack, nhằm ngăn các vấn đề không tương thích với liên kết native V8. Các bản dựng production (`bun run build`) tuân theo `OMNIROUTE_USE_TURBOPACK` chính xác như trên Node: mặc định dùng Turbopack, đặt `OMNIROUTE_USE_TURBOPACK=0` để dựng bằng Webpack (`Dockerfile.bun` cung cấp biến này dưới dạng `--build-arg`).
- **Dockerfile riêng cho Bun**: `Dockerfile.bun` nhiều giai đoạn dành cho các bản triển khai production Bun native (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Cài đặt và chạy bằng Bun
bun install
bun run dev
```
**🛠️ Từ mã nguồn**
```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
# Sử dụng Nix flakes
nix develop
npm run dev
# Hoặc sử dụng devbox
devbox run npm run dev
```
📖 [Hướng dẫn Docker](docs/guides/DOCKER_GUIDE.md) — Các profile Compose, Caddy HTTPS, tunnel Cloudflare.
**🦭 Podman**
```bash
# 1. Chuẩn bị thư mục dữ liệu được bind mount
mkdir -p data
# 2. Chỉ dành cho Linux + Podman rootless cục bộ (không bao giờ dùng trên máy khách Podman Machine từ xa):
podman unshare chown 1000:1000 ./data
# 3. Đặt gợi ý runtime, dựng image Compose cục bộ và khởi động
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Trên macOS hoặc Windows, Podman sử dụng Podman Machine từ xa: hãy bỏ qua `podman unshare` và
làm theo [hướng dẫn về thư mục dữ liệu dành riêng cho từng cấu trúc triển khai](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Hướng dẫn Podman](contrib/podman/README.md) — Các bản dựng Compose, Podman Machine và
thiết lập Quadlet Linux/systemd.
**⚡ Cài đặt nhanh hơn / gọn nhẹ hơn (bỏ qua bước dựng native)**
Công cụ SQLite native (`better-sqlite3`) là một dependency **tùy chọn**, vì vậy quá trình cài đặt
toàn cục không bao giờ bị chặn do phải biên dịch từ mã nguồn: hệ thống sử dụng binary dựng sẵn khi có
bản phù hợp với nền tảng/Node của bạn, nếu không sẽ tự động chuyển sang công cụ JavaScript thuần
(`node:sqlite` trên Node 22+, nếu không thì dùng `sql.js` WASM đi kèm) — không yêu cầu công cụ dựng.
Để bỏ qua hoàn toàn bước khởi động native sau khi cài đặt (CI, môi trường headless hoặc máy chậm):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 cũng bỏ qua bước này
```
Để cài đặt nhanh nhất, hãy ưu tiên **pnpm** (kho lưu trữ định địa chỉ theo nội dung + liên kết cứng — xem phần trên).
Để sử dụng runtime headless không có bảng điều khiển, hãy dùng profile Docker `base` (ở trên) hoặc
[hướng dẫn Termux](docs/guides/TERMUX_GUIDE.md). CLI và bảng điều khiển web được cung cấp bởi cùng một
tiến trình trên một cổng, vì vậy hiện chưa có package riêng chỉ dành cho CLI.
# 🎬 OmniRoute trong thực tế
## 📹 Hướng dẫn bằng video
Ảnh chụp bảng điều khiển vào 2026-10-18 · Danh mục thô: YT 1.352 | TT 334 | IG 290 · Độ mới (ngày): YT 5 | TT 48 | IG 49
**Bảng xếp hạng đầy đủ (các URL chuẩn đã được loại bỏ trùng lặp, `v > 0`, phạm vi tiếp cận cao nhất):**
| #1 | #2 | #3 | #4 | #5 |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** |
| #6 | #7 | #8 | #9 | #10 |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** |
Số liệu chuẩn vào 2026-10-18: **1.976 video duy nhất** · **20.220.289 lượt xem đã biết** (`v > 0`) · **1.210 kênh/hồ sơ theo từng mạng**. Bảng điều khiển thô chứa 1.976 hàng (YouTube 1.352 = 740 video dài + 612 Shorts · TikTok 334 · Instagram 290); không còn bản trùng lặp nào sau khi chuẩn hóa theo URL chính tắc, trong đó giữ lại số lượt xem cao nhất cho mỗi video. Việc thu thập dữ liệu YouTube đã bị đóng băng từ 2026-10-13 (hạn ngạch API đã cạn từ 14 đến 18/10), còn TikTok/Instagram từ 2026-09-02 (không còn tín dụng thu thập dữ liệu); 76 video vẫn chưa có số lượt xem.
> 🎬 **Bạn đã làm video về OmniRoute?** Hãy mở một [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) hoặc [discussion](https://github.com/diegosouzapw/OmniRoute/discussions) kèm theo liên kết — chúng tôi sẽ giới thiệu video đó tại đây.
# 📧 Cộng đồng & Trợ giúp
> Mọi thứ ở cùng một nơi — theo dõi người bảo trì, trò chuyện với cộng đồng hoặc mở một issue.
| Kênh | Ở đâu / bằng cách nào |
| ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| 💼 **LinkedIn** — theo dõi người bảo trì | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
| 🐙 **GitHub** — theo dõi các bản phát hành và mẹo | [@diegosouzapw](https://github.com/diegosouzapw) |
| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
| 🟢 **WhatsApp — 🌍 Toàn cầu** | [tham gia nhóm](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) |
| 🟢 **WhatsApp — 🇧🇷 Brasil** | [tham gia nhóm](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) |
| 🌍 **Trang web** | [omniroute.online](https://omniroute.online) |
| 🌍 **🌍Cộng đồng StHub OmniRoute (miễn phí)** | [cổng thông tin StHub](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) |
| 📦 **Mã nguồn** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
| 🐛 **Báo cáo lỗi** | [mở một issue](https://github.com/diegosouzapw/OmniRoute/issues) — đính kèm đầu ra của `npm run system-info` |
| 🤝 **Đóng góp** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Mô hình phân nhánh và phát hành](docs/ops/BRANCHING_MODEL.md) · chọn một `good first issue` |
| 💚 **Hỗ trợ dự án** | [Các cách hỗ trợ ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
OAuth 2.0 (PKCE) + JWT + API Keys + xác thực theo phạm vi của MCP · AES-256-GCM khi lưu trữ · DOMPurify
Tàng hình
wreq-js — giả lập dấu vân tay TLS JA3 / JA4, proxy 3 cấp
Khả năng phục hồi
Circuit breaker, exponential backoff, chống hiệu ứng bầy đàn (anti-thundering-herd), auto-combo tự phục hồi
Ghi log
pino — log JSON có cấu trúc kèm ngữ cảnh request
Kiểm thử
Node.js test runner + Vitest — hơn 56.000 khai báo kiểm thử tĩnh trải khắp hơn 7.800 tệp kiểm thử được theo dõi (unit, integration, E2E, bảo mật, hệ sinh thái)
Nền tảng
Máy tính để bàn (Electron) · Android (Termux) · PWA (mọi trình duyệt)
CI/CD
GitHub Actions — tự động publish lên npm + Docker Hub khi phát hành
Chiến lược độ bao phủ kiểm thử cho hơn 56.000 khai báo kiểm thử tĩnh trên hơn 7.800 tệp kiểm thử được theo dõi
# ⭐ Những người đóng góp hàng đầu
> OmniRoute được định hình bởi một cộng đồng mã nguồn mở đầy nhiệt huyết. Những cá nhân này đã có những đóng góp xuất sắc, tác động trực tiếp đến chất lượng, độ ổn định và phạm vi tiếp cận của dự án. **Xin cảm ơn.**
### Những người đóng góp bên ngoài theo số pull request đã hợp nhất
Thống kê được thực hiện lúc 2026-10-18 15:09:09 UTC với đầu nhánh trực tiếp release/v3.8.52 tại 656f01cb43. Thống kê GitHub GraphQL có phân trang bao gồm 9.191 PR đã hợp nhất: 3.834 từ chủ sở hữu kho lưu trữ, 229 từ Dependabot, 6 từ các bot/ứng dụng khác và 5.122 PR bên ngoài từ 835 người đóng góp riêng biệt. “Số dòng thay đổi” là tổng số dòng thêm + xóa trên GitHub và bao gồm các tệp được tạo tự động, lockfile, danh mục, bản dịch và tài liệu; đây là mức độ biến động, không phải số dòng mã do tác giả viết. Có 49 PR được GitHub báo cáo có diff vượt quá 500.000 dòng (ví dụ #13399, chỉ thêm một nhà cung cấp, liệt kê 2.347 tệp đã thay đổi), khiến một số tổng số ở trên bị tăng cao. Các trường hợp đồng hạng được xếp cùng hạng.
### Các commit được GitHub ghi nhận
Đã kiểm tra lại lúc 2026-10-18 14:44:45 UTC: số commit được GitHub ghi nhận do API Contributors của repository báo cáo cho nhánh mặc định release/v3.8.52. API trả về 849 danh tính (429 người dùng, 2 bot, 418 ẩn danh); bảng này loại trừ người bảo trì, bot và các danh tính ẩn danh, đồng thời giữ nguyên các trường hợp đồng hạng. Bảng này khác biệt với cả bảng xếp hạng theo PR đã hợp nhất ở trên và bảng thống kê dựa trên siêu dữ liệu Git ở bên dưới.
> 🙏 Các tính năng, bản sửa lỗi và cải tiến hạ tầng của những người đóng góp này là **phần cốt lõi** giúp OmniRoute trở nên đáng tin cậy và giàu tính năng. Mỗi pull request, mỗi trường hợp kiểm thử và mỗi tệp dịch i18n đều quan trọng. Mã nguồn mở được xây dựng bởi những người như họ.
---
## 💖 Nhà tài trợ
Xin chân thành cảm ơn những người đã tự bỏ tiền túi tài trợ cho OmniRoute — mỗi khoản đóng góp đều giúp dự án luôn miễn phí, độc lập và tiếp tục phát triển.
… và những người khác muốn giữ kín danh tính 💛Các nhà tài trợ công khai trên GitHub đã được xác thực lại vào ngày 2026-10-18 thông qua GitHub Sponsors GraphQL API: 11 khoản tài trợ công khai (6 đang hoạt động, 5 trước đây) trong tổng số 14 khoản. Trạng thái isActive của GitHub xác định các nhãn đang hoạt động ở trên; những người ủng hộ công khai một lần trước đây vẫn được tri ân, còn các nhà tài trợ riêng tư vẫn được ẩn danh. Các khoản quyên góp qua Ko-fi, Buy Me a Coffee, Liberapay, PIX và tiền mã hóa không được liệt kê vì không có hồ sơ nhà tài trợ công khai.💖 Trở thành nhà tài trợ → — mỗi đô la đều giúp OmniRoute luôn miễn phí và độc lập.
## 👥 Hơn 900 người đóng góp
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Được kiểm tra vào ngày 2026-10-18 tại đầu mút trực tiếp release/v3.8.52ad160ab2d1 (6.826 commit): 993 danh tính Git của người dùng đã được chuẩn hóa — 707 xuất hiện với tư cách tác giả commit (bao gồm cả người bảo trì) và 286 chỉ xuất hiện trong các dòng chú thích Co-authored-by rõ ràng. Quá trình thống kê áp dụng .mailmap, so sánh địa chỉ email không phân biệt chữ hoa chữ thường, chỉ liên kết địa chỉ noreply dạng số và dạng văn bản thuần túy của GitHub khi chúng mã hóa cùng một tên định danh, loại trừ 26 danh tính bot/tác nhân/dịch vụ/giữ chỗ và không hợp nhất các địa chỉ email thông thường chỉ vì tên hiển thị của chúng trùng khớp. Báo cáo kiểm tra ngày 2026-08-24 đã công bố con số 639; khi chạy lại phương pháp này trên cơ sở ac02c5b42f của đợt kiểm tra đó, kết quả là 619, vì vậy mức tăng đến từ những người đóng góp mới chứ không phải do phương pháp ít nghiêm ngặt hơn.
### Cách đóng góp
1. Fork kho lưu trữ
2. Tạo nhánh từ đầu mút **đang hoạt động** của `release/vX.Y.Z` (không phải `main`) — xem [Mô hình phân nhánh và phát hành](docs/ops/BRANCHING_MODEL.md)
3. Tạo nhánh tính năng của bạn (`git checkout -b feat/amazing-feature`)
4. Commit các thay đổi của bạn (`git commit -m 'feat: add amazing feature'`)
5. Đẩy lên nhánh (`git push origin feat/amazing-feature`)
6. Mở một Pull Request với **base = nhánh `release/vX.Y.Z` đó**
Xem [CONTRIBUTING.md](CONTRIBUTING.md) để biết hướng dẫn chi tiết.
### Phát hành phiên bản mới
```bash
# Tạo một bản phát hành — npm publish diễn ra tự động
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Sao
## 🌍 StarMapper
## 🙏 Lời cảm ơn
OmniRoute được xây dựng trên nền tảng của những dự án tiên phong. Dự án khởi đầu dưới dạng một bản fork của **[9router](https://github.com/decolua/9router)** và một bản chuyển đổi sang TypeScript của dự án Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — và kể từ đó, mỗi hệ thống con bên dưới đều được truyền cảm hứng từ một dự án mã nguồn mở đi trước. Mỗi dự án đều góp phần định hình một thành phần cụ thể của OmniRoute. Đây là lời cảm ơn của chúng tôi dành cho tất cả các dự án ấy. 🙏
> ⭐ số lượt sao được xác minh qua REST API của GitHub vào ngày 18 tháng 10 năm 2026 — hãy tặng các dự án này một ngôi sao. Các con số là ảnh chụp nhanh chính xác tại thời điểm nêu trên và đương nhiên sẽ thay đổi theo thời gian.
### 🧬 Nguồn gốc & gateway
Gateway AI có tập dữ liệu giá công khai được dùng để đồng bộ tính năng theo dõi chi phí của chúng tôi, đồng thời mô hình chuẩn hóa nhà cung cấp của dự án đã định hướng cơ chế định tuyến của chúng tôi.
Nguồn mã MIT được điều chỉnh để tích hợp vào cầu nối ChatGPT Web → Codex Responses đi kèm, bao gồm các bộ điều hợp phiên trình duyệt, đóng khung phản hồi, mức sử dụng và tìm kiếm web.
Các mẫu thiết kế được chuyển sang tính năng khôi phục luồng, bí danh không suy luận, tìm kiếm web dự phòng, giới hạn cửa sổ trượt, biên tập nhật ký và các luồng khởi chạy được tăng cường bảo mật.
Các giá trị mặc định về chuyển đổi tương thích với Claude Code và hành vi của tiêu đề thanh toán được khái quát hóa vào cầu nối dựa trên cấu hình của OmniRoute.
Các ánh xạ mô hình Grok, trình tạo Statsig với TypeError giả, các giá trị mặc định cho yêu cầu và thiết bị, cùng trình xử lý phản hồi NDJSON của dự án đã được điều chỉnh đáng kể để tích hợp vào trình thực thi Grok Web của OmniRoute.
Nguồn mã bắc cầu chính đứng sau grok2api-merged; các phần triển khai mô hình, tiêu đề, payload, Statsig và bộ xử lý của dự án được bảo tồn trong nguồn gốc của Grok Web.
Nguồn MIT nền tảng cho payload Grok và các giá trị mặc định của thiết bị, trình tạo Statsig và bộ xử lý result.response được kế thừa thông qua TQZHR và grok2api-merged.
Một nguồn bắc cầu được grok2api-merged ghi công cho lớp nhóm proxy; OmniRoute duy trì thông báo về nguồn gốc đó nhưng không tuyên bố đã chuyển đổi nhóm proxy vào trình thực thi Grok Web có phạm vi giới hạn của mình.
Proxy Grok được xác thực bằng cookie và mẫu truyền phát trực tuyến result.response.token của dự án đã định hướng lớp truyền tải Grok Web của OmniRoute.
Phần triển khai Grok Web ban đầu đã tham khảo thiết kế upstream HTTP/trình duyệt của dự án; đường dẫn HTTP trực tiếp của nó bắt nguồn từ GrokProxy, vì vậy không tuyên bố có bất kỳ bản chuyển đổi mã độc lập nào.
Dự án lan truyền mạnh với câu "tại sao dùng nhiều token khi ít token cũng làm được" — triết lý nói kiểu người tiền sử của dự án là nền tảng cho chế độ nén tiêu chuẩn và hơn 30 quy tắc loại bỏ từ thừa/rút gọn của chúng tôi.
Nén đầu ra lệnh hiệu năng cao — truyền cảm hứng cho công cụ RTK, DSL bộ lọc JSON, khả năng khôi phục đầu ra thô và quy trình xếp chồng RTK → Caveman của chúng tôi.
Nghiên cứu nén lời nhắc (LLMLingua / LLMLingua-2) — truyền cảm hứng cho công cụ llmlingua bất đồng bộ, an toàn với mã và cho phép tiếp tục khi gặp lỗi của chúng tôi.
Nén token PT-BR — là nền tảng cho gói ngôn ngữ pt-BR của chúng tôi: giảm trùng ý và loại bỏ từ thừa được tinh chỉnh cho ngữ pháp tiếng Bồ Đào Nha Brazil.
Kỹ năng lập trình YAGNI "lập trình viên cấp cao lười biếng" từng lan truyền mạnh — truyền cảm hứng cho Kiểu đầu ra less-code của chúng tôi: định hướng thay đổi nhỏ nhất nhưng vẫn hoạt động, giúp giảm lượng mã _được tạo ra_ (đối trọng trên trục đầu ra với văn phong súc tích của Caveman).
Phong cách phản hồi ưu tiên hành động, thân thiện với người mắc ADHD của dự án đã được điều chỉnh thành kiểu đầu ra súc tích của OmniRoute trên năm ngôn ngữ.
### 🧩 Định dạng nhỏ gọn, nghiên cứu token & công cụ nhận biết mã
Định dạng đồ thị nhỏ gọn và thiết kế hồ sơ chung của dự án đã cung cấp cơ sở cho tính năng thu gọn dạng bảng và định dạng codec Headroom của OmniRoute.
Nén đầu ra theo từng loại tệp, có nhận biết nội dung và có cơ chế dừng khi gặp lỗi — xác nhận tính đúng đắn của cơ chế điều phối theo loại và bỏ qua khi mức giảm không đạt ngưỡng tối thiểu của chúng tôi.
JSON dạng cột bằng Rust + truy xuất theo địa chỉ nội dung + loại bỏ trùng lặp giữa các thông điệp — xác nhận thiết kế công cụ headroom/ccr/session-dedup và bất biến thân thiện với bộ nhớ đệm rằng "dạng nén không phụ thuộc vào vị trí" của chúng tôi.
Bộ công cụ TypeScript Compiler API — truyền cảm hứng cho cơ chế loại bỏ chú thích dựa trên trình phân tích cú pháp của chúng tôi, đồng thời bảo toàn các literal chuỗi, template và biểu thức chính quy.
Việc chặn/phân tích MITM đối với lưu lượng giữa trợ lý lập trình ↔ LLM đã định hình các yêu cầu ban đầu của Traffic Inspector. Bốn mô-đun được kế thừa trước đây — hợp nhất SSE, chuẩn hóa hội thoại, che giấu thông tin bí mật và làm sạch header — đã được thay thế bằng các bản triển khai clean-room độc lập dựa trên các tiêu chuẩn giao thức công khai. Hai bề mặt chuyển tiếp nguyên trạng đến máy chủ (passthrough.ts và _internal/bypass.cjs) vẫn là các bản triển khai nội bộ của OmniRoute được phân loại độc lập; chúng không được viết lại trong quá trình thay thế đó.
Định tuyến proxy trong suốt theo từng tiến trình — truyền cảm hứng cho cơ chế tháo dỡ MITM an toàn khi gặp sự cố, thời gian chờ khi socket không hoạt động, quy kết tiến trình qua /proc và thu giữ lưu lượng bằng TPROXY của chúng tôi.
### 📚 Dữ liệu mô hình, khả năng quan sát & giao diện người dùng
Khả năng trực quan hóa đồ thị luồng công việc trực tiếp của LangGraph Studio đã truyền cảm hứng cho chế độ xem chuỗi chuyển tiếp theo thời gian thực trong các Studio của chúng tôi.
Khả năng quan sát lưới dịch vụ Istio — truyền cảm hứng cho các huy hiệu ngắt mạch và phần trực quan hóa cạnh lỗi trong Routing/Combo Studio của chúng tôi.
Danh sách tuyển chọn các thư viện an toàn theo mặc định, định hướng cho những lựa chọn bảo mật của chúng tôi (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Truyền cảm hứng cho việc loại bỏ yêu cầu trùng lặp, phương án dự phòng khẩn cấp không tốn chi phí, các chiến lược Auto-Combo có thể cắm ghép và khả năng phân loại ý định đa ngôn ngữ.
Khả năng ánh xạ lại mô hình theo tài khoản, xác thực đường dẫn tệp thực thi và cách xử lý nhãn gói của dự án này đã định hình runtime Antigravity của OmniRoute.
Định dạng đếm ngược nhỏ gọn đến thời điểm đặt lại hạn ngạch của dự án này đã truyền cảm hứng cho phần hiển thị giới hạn nhà cung cấp tương ứng trong OmniRoute.
Đã xác định bề mặt hạn ngạch Grok Build; sau đó OmniRoute đã xác minh và hiệu chỉnh độc lập định dạng dữ liệu truyền trực tiếp.
## 📄 Giấy phép
Giấy phép MIT - xem [LICENSE](LICENSE) để biết chi tiết.
---
**[⬆ Về đầu trang](#-omniroute)** · Được xây dựng với ❤️ cho cộng đồng AI mã nguồn mở.
OmniRoute v3.8.53 · Node ≥22.22.2 · Giấy phép MIT · omniroute.online