Codex CLI rate limit + Tier system: tận dụng tối đa quota Plus/Pro/Business 2026

Mục lục
TL;DR
  • OpenAI Codex CLI dùng cơ chế rate limit theo tier subscription (Plus, Pro, Business), không chỉ dựa trên token.
  • Mỗi tier có quota khác nhau cho số request, độ dài context, và mức độ ưu tiên khi server bận.
  • Reset window thường tính theo cửa sổ trượt vài giờ, không phải reset đúng nửa đêm UTC.
  • Chiến thuật chia nhỏ task, cache prompt, dùng model nhỏ cho recon giúp giữ quota cho task quan trọng.
  • VPS chạy headless cần monitor rate limit log để tránh đứt task giữa đêm.

Nếu bạn đang dùng OpenAI Codex CLI hằng ngày để code, sớm hay muộn cũng đụng cái màn hình hiện thông báo rate limit. Lần đầu thấy thì bực, nhưng khi hiểu rõ cách OpenAI phân tier và tính quota, bạn có thể chủ động sắp xếp workflow để hầu như không bao giờ bị chặn giữa task quan trọng.

Bài này dành cho dev Việt đang trả Plus, Pro hoặc Business và muốn tận dụng tối đa từng đồng. Mình sẽ đi qua cách rate limit hoạt động, sự khác nhau giữa các tier, công thức tính reset window thực tế, và những thủ thuật giảm tiêu hao quota khi chạy task dài trên VPS.

Nội dung tập trung vào kiến trúc và workflow nên không bị lỗi thời mỗi khi OpenAI cập nhật con số cụ thể. Khi cần số liệu chính xác, bạn nên check trang status và tài liệu chính thức tại thời điểm đọc.

Rate limit trong Codex CLI khác gì so với API thuần

OpenAI có hai con đường để dev tiếp cận model: API pay-as-you-go và subscription qua ChatGPT (Plus, Pro, Business). Codex CLI bám vào subscription thay vì API key, nên rate limit của bạn khi gõ lệnh trên terminal đi theo gói ChatGPT đang trả, không tính theo dollar tiêu thụ.

Cách tính này dễ chịu cho dev solo vì không sợ hóa đơn nổ bất ngờ. Đổi lại, mỗi tier có trần cứng. Khi vượt trần bạn bị throttle, chứ không phải bị tính tiền thêm như API mode. Hiểu được điều này giúp bạn không hoảng khi thấy thông báo "you've reached your rate limit" - đó chỉ là tín hiệu cần đợi cửa sổ reset hoặc chuyển sang tier cao hơn.

Một điểm thú vị là Codex CLI không công khai số request tối đa thành con số tròn. Thay vào đó, OpenAI dùng heuristic dựa trên tải hệ thống, độ phức tạp prompt, và lịch sử dùng của tài khoản. Ngày bình thường tier Plus đủ cho 6-8 tiếng coding liên tục, nhưng giờ cao điểm Mỹ có thể bị hạ quota tạm thời.

Bảng so sánh tier theo workload thực tế

Bảng dưới mô tả định tính ba tier dựa trên trải nghiệm dev VN dùng Codex CLI hằng ngày. Vì OpenAI thay đổi quota theo thời gian, mình không ghi con số cố định mà mô tả khả năng đáp ứng workload.

TierWorkload phù hợpĐộ ưu tiênPhù hợp với ai
PlusSide project, học, code 4-6h/ngàyThườngDev cá nhân, sinh viên, freelancer mới
ProFull-time coding 8-12h/ngày, agent dàiCaoFounder solo, dev senior, indie hacker
BusinessTeam nhỏ chia sẻ workspace, SSOCao + SLAStartup 3-15 dev, agency, studio

Trong nhóm dev VN mình quan sát, đa số bắt đầu từ Plus rồi nâng lên Pro sau 2-3 tháng khi cảm thấy bị nghẽn nhiều lần trong tuần. Business chỉ hợp lý khi đã có team thực sự cùng chia workspace, không nên dùng cho solo dù có dư tiền - vì Pro cho quota cá nhân cao hơn nhiều khi quy theo người dùng.

Reset window thực sự hoạt động thế nào

Sai lầm phổ biến nhất là nghĩ reset xảy ra đúng 00:00 UTC mỗi ngày. Thực tế Codex CLI dùng cửa sổ trượt (rolling window) tính theo giờ. Nghĩa là quota bạn dùng lúc 10h sáng sẽ "trả lại" dần dần sau vài tiếng, không đợi nửa đêm.

Có ít nhất ba loại cửa sổ chồng lên nhau: cửa sổ ngắn vài phút (chống spam), cửa sổ trung 1-3 tiếng (chính), và cửa sổ dài 24 tiếng (trần ngày). Khi bị throttle, thường là vì vượt cửa sổ trung. Đợi 60-90 phút là đa số trường hợp được tiếp tục.

Mẹo nhỏ: ghi log thời gian từng lần bạn bị throttle trong tuần. Sau 2 tuần bạn sẽ thấy pattern rõ - thường là 14h-16h chiều VN (tương ứng đêm Mỹ vào ngày làm việc bên Mỹ). Sắp xếp task heavy vào ngoài khung giờ đó giúp giảm rate limit hit đáng kể.

Đọc header response để hiểu quota còn lại

Codex CLI có flag verbose để in ra header HTTP của response. Khi bật chế độ này, bạn thấy các trường liên quan rate limit như x-ratelimit-remaining, x-ratelimit-reset, x-ratelimit-limit. Đây là nguồn tin đáng tin nhất, hơn cả thông báo trên terminal.

# Bật log verbose cho session hiện tại
export CODEX_LOG_LEVEL=debug
codex --version

# Sau mỗi lệnh, file log mặc định ở ~/.codex/logs/
tail -f ~/.codex/logs/latest.log | grep -i ratelimit

Lưu ý đường dẫn log có thể khác nhau giữa các phiên bản. Nếu không tìm thấy, chạy lệnh codex --help để xem flag log-file hoặc kiểm tra thư mục config trong $HOME/.config/codex/. Đa số dev trên Linux để log mặc định, không cần custom.

Chia nhỏ task để tránh đốt quota

Một task lớn nhồi 50 file vào context một lần thường tốn quota gấp 3-5 lần so với chia thành nhiều turn nhỏ. Lý do đơn giản: mỗi token trong context window đều tính vào budget, kể cả phần Codex chỉ "đọc lướt".

  • Chia task thành các milestone rõ ràng, mỗi milestone xử lý 1 module.
  • Dùng phase planning trước khi viết code: đầu tiên hỏi Codex lập kế hoạch, sau đó mới attach file thực.
  • Tránh paste log lỗi dài hàng nghìn dòng - cắt 100 dòng đầu và cuối là đủ.
  • Dùng .codexignore để loại trừ node_modules, vendor, .git khỏi context tự động.
  • Khi cần xem nhiều file, dùng tree -L 2 thay vì cat từng file để cho Codex bối cảnh thư mục trước.

Sau 2-3 tuần luyện tay chia task nhỏ, mình thấy quota tiêu thụ giảm khoảng 40% mà vẫn hoàn thành cùng khối lượng việc. Codex cũng output chính xác hơn vì context tập trung, không bị nhiễu bởi file không liên quan.

Cache prompt để tiết kiệm token lặp

OpenAI hỗ trợ prompt caching cho phần đầu prompt được lặp lại nhiều lần. Trong Codex CLI, các file project context, instruction file (AGENTS.md hoặc tương tự) thường nằm ở đầu prompt nên được cache tự động.

Để tận dụng tối đa, giữ phần đầu prompt ổn định giữa các lần gọi trong cùng phiên. Đừng thay đổi nội dung file AGENTS.md liên tục, đừng đổi thứ tự file attach. Khi cache hit, OpenAI tính phí thấp hơn nhiều cho phần cache, và tốc độ response cũng nhanh hơn rõ rệt.

Cache có thời hạn (thường vài phút sau request cuối). Nếu bạn chạy task burst trong khoảng 5-10 phút thì cache vẫn còn. Để cache lâu hơn vài giờ thì cần explicit hint trong API call, nhưng phần này Codex CLI chưa expose ra cho user thông thường.

Chọn model size cho từng loại task

Codex CLI cho phép switch model trong cùng session. Model mạnh dành cho task phức tạp (refactor lớn, debug logic khó). Model nhẹ phù hợp với việc lặp (generate boilerplate, viết test đơn giản, format code). Dùng đúng model cho đúng task tiết kiệm quota mà chất lượng không giảm.

Loại taskModel nên chọnLý do
Generate boilerplateModel nhẹOutput có pattern, không cần reasoning sâu
Debug logic phức tạpModel mạnh nhấtCần suy luận đa bước, hiểu state
Viết test unitModel trung bìnhCần hiểu code nhưng output theo template
Refactor lớnModel mạnhPhải giữ semantic, suy luận tác động lan
Format/lint fixModel nhẹViệc cơ học, output ngắn

Khi dùng tier Plus, hạn chế model mạnh nhất chỉ cho 20-30% task quan trọng. Phần còn lại dùng model trung bình. Cách này giúp tier Plus cover được khối lượng việc xấp xỉ tier Pro nếu bạn kỷ luật.

Headless mode và rate limit khi chạy qua đêm

Chạy Codex CLI headless trên VPS qua đêm là chiến thuật tận dụng giờ thấp điểm để hoàn thành task dài. Tuy nhiên rate limit vẫn áp dụng, và nếu task bị throttle giữa chừng, có thể đứt mạch mà bạn không biết.

# Script wrapper kiểm tra rate limit trước khi chạy task heavy
#!/usr/bin/env bash
set -e

LOG=$HOME/.codex/logs/headless.log

run_with_retry() {
  local task=$1
  local max_retry=3
  local retry=0

  while [ $retry -lt $max_retry ]; do
    if codex exec "$task" >> $LOG 2>&1; then
      echo "OK: $task"
      return 0
    else
      echo "Throttled, sleep 30 min"
      sleep 1800
      retry=$((retry+1))
    fi
  done
  echo "FAIL after $max_retry retries"
  return 1
}

run_with_retry "refactor module auth"
run_with_retry "viết test cho module billing"

Script trên đơn giản nhưng đủ dùng cho dev solo. Khi rate limit hit, nó sleep 30 phút rồi thử lại tối đa 3 lần. Trong khoảng đó cửa sổ trượt thường đã giải phóng đủ quota để tiếp tục. Nếu task quan trọng, bạn có thể tăng max_retry lên 5 và sleep 60 phút.

Monitor quota từ xa qua webhook nhẹ

Khi để Codex chạy headless trên VPS, bạn vẫn muốn biết task có bị throttle không mà không phải SSH lên check. Cách đơn giản là viết hook ping về máy của bạn (Telegram bot, Discord webhook, hay endpoint riêng) khi gặp lỗi rate limit.

# Trong .bashrc của user chạy codex headless
codex_notify() {
  curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" 
    -d "chat_id=$YOUR_CHAT_ID" 
    -d "text=$1"
}

# Wrapper báo về khi rate limit
codex_safe() {
  output=$(codex exec "$1" 2>&1) || {
    if echo "$output" | grep -qi "rate limit"; then
      codex_notify "Codex throttled tại VPS, task: $1"
    fi
    return 1
  }
  echo "$output"
}

Thay $BOT_TOKEN và $YOUR_CHAT_ID bằng giá trị thực của bạn. Cách này nhẹ, không cần dựng thêm service. Khi ngủ dậy bạn xem Telegram là biết đêm qua có sự cố gì không. Nếu thích monitor đầy đủ hơn thì xét thêm Prometheus exporter, nhưng overkill cho dev solo.

Khi nào nên nâng tier từ Plus lên Pro

Tín hiệu rõ nhất là bạn bị throttle ít nhất 3-4 lần trong một tuần, làm gián đoạn flow công việc. Một lần ít vài chục phút mỗi lần cộng dồn lại là vài giờ work bị mất, chưa kể context switch tốn năng lượng tinh thần.

  • Đếm số lần throttle trong 2 tuần liên tiếp - nếu trên 6 lần thì nâng tier.
  • Nếu công việc full-time phụ thuộc Codex (hơn 60% thời gian coding), nâng Pro là đầu tư an toàn.
  • Nếu chỉ là side project cuối tuần, Plus đủ - không cần overinvest.
  • Nếu chạy nhiều agent song song trên nhiều VPS, Pro hoặc Business mới đáp ứng nổi.
  • So sánh chi phí giữa Pro và việc thuê thêm 1 junior dev: thường Pro rẻ hơn rất nhiều cho cùng output.

Business tier có đáng cho startup 3-5 người không

Business tier không chỉ nâng quota mà còn cung cấp workspace chia sẻ, billing tập trung, audit log, và SSO. Với team 3-5 dev đang dùng Plus cá nhân, gộp về Business giúp admin gọn hơn và đảm bảo mỗi dev có quota cao đều đặn thay vì người dùng nhiều người dùng ít.

Tuy nhiên, Business có chi phí tối thiểu theo seat. Tính ra nếu team chỉ 3 người và 1 trong số đó chỉ thỉnh thoảng dùng, có khi 3 gói Pro cá nhân vẫn rẻ hơn. Bài toán này nên tính trên 6 tháng vì subscription nhiều khi có giảm giá khi pay yearly.

Một lý do quan trọng nâng Business là khi cần kiểm soát dữ liệu - team Business thường có chính sách bảo mật riêng, không dùng prompt để training. Nếu team bạn code cho khách hàng có dữ liệu nhạy cảm, Business gần như bắt buộc về mặt compliance.

FAQ về Codex CLI rate limit và tier

Codex CLI tier Plus có đủ cho dev full-time không?

Đủ nếu bạn biết kỷ luật chia task nhỏ, dùng model nhẹ cho việc lặp, và tránh giờ cao điểm. Đa số dev solo VN dùng Plus 3-6 tháng mới phải nâng. Tuy nhiên nếu chạy agent dài qua đêm thường xuyên hoặc làm việc trên codebase trên 100k dòng, Pro sẽ thoải mái hơn nhiều.

Rate limit có reset mỗi ngày không?

Không hẳn. Codex CLI dùng cửa sổ trượt (rolling window) tính theo giờ chứ không reset đúng nửa đêm UTC. Có nhiều cửa sổ chồng lên: vài phút, vài giờ, và 24 giờ. Khi bị throttle, thường chỉ cần đợi 60-90 phút là tiếp tục được.

Có cách nào share tier giữa nhiều máy không?

Có. Cùng tài khoản OpenAI có thể login Codex CLI trên nhiều máy (laptop, VPS, Mac). Quota tính theo tài khoản nên tổng quota của bạn không nhân lên, nhưng cho phép chuyển máy linh hoạt. Cẩn thận không chạy quá nhiều session song song vì có thể bị flag là abuse.

Có công cụ nào theo dõi quota Codex CLI realtime không?

Chính thức từ OpenAI thì có dashboard usage trong account settings, nhưng cập nhật chậm. Để realtime, bạn phải tự parse log Codex CLI hoặc đọc header response. Có một số tool community như openai-quota-watcher hay codex-stats nhưng đa số đều unofficial và phải tự cài.

Khi bị rate limit, có nên đổi sang gói API pay-as-you-go không?

Nếu thỉnh thoảng burst thì có thể tách workload qua API key tạm thời, vì API tính tiền theo token thực dùng nên không bị throttle nghiệt như subscription. Tuy nhiên API thường đắt hơn nhiều cho cùng khối lượng so với subscription. Chỉ nên dùng API cho production traffic hoặc khi quota subscription cạn giữa task quan trọng.

Tier Business có chia quota theo từng seat không?

Business gán quota theo từng seat, không pool chung. Mỗi dev trong workspace có quota tương đương Pro cá nhân. Admin có thể xem dashboard tổng nhưng không tự redistribute giữa các thành viên. Khi 1 dev dùng hết quota, không tự động vay từ dev khác - mỗi người tự chờ reset window của mình.

Cloud VPS cho Codex CLI dev

VPS chạy Codex CLI headless 24/7 không lo gián đoạn

Cloud VPS TND sẵn AlmaLinux 9, Ubuntu 22/24, Debian 12/13. SSD CEPH, snapshot 1-click, backup hằng ngày, network 200Mbps trong nước. Uptime ổn định để Codex agent chạy qua đêm an toàn, log đầy đủ giúp bạn track rate limit và resume task khi cần.

Xem 8 cấu hình Cloud VPS →

Chia sẻ bài viết