Claude Code và Codex CLI giải quyết cùng một vấn đề từ cùng một nơi: một tác tử trong terminal đọc repository, đề xuất chỉnh sửa, chạy lệnh và lặp lại dựa trên kết quả. Chúng khác nhau ở họ mô hình phía sau, phạm vi mở rộng và cách cấu hình — không khác nhau ở hình thức công việc cơ bản.
Trang này so sánh những điểm thực sự khác nhau, đưa ra quy tắc quyết định thay vì phán quyết, và hướng dẫn cách chạy cả hai bằng một key nếu bạn muốn đánh giá trên mã nguồn của mình.
Đặt cạnh nhau
| Claude Code | Codex CLI | |
|---|---|---|
| Từ | Anthropic | OpenAI |
| Họ mô hình | Claude (Opus, Sonnet, Haiku) | GPT / Codex |
| Bề mặt API | Anthropic Messages | Tương thích OpenAI |
| Cấu hình | Biến môi trường + ~/.claude/settings.json | ~/.codex/config.toml |
| Endpoint tùy chỉnh | ANTHROPIC_BASE_URL (Messages API) | Khối model_providers (chỉ Responses API) |
| Phạm vi mở rộng | MCP, subagent, hook, skill, plan mode | Tinh gọn hơn; tệp nhị phân Rust mã nguồn mở |
| Sandbox thực thi | Lời nhắc cấp quyền và hook | Chính sách sandbox cục bộ |
| Tích hợp trình soạn thảo | Tiện ích mở rộng cho VS Code và JetBrains | Ưu tiên terminal |
Cả hai đều đang được phát triển tích cực và thay đổi nhanh, vì vậy hãy xem mọi danh sách tính năng — kể cả danh sách này — là một ảnh chụp tại một thời điểm. Những khác biệt về cấu trúc (họ mô hình, bề mặt API, định dạng cấu hình) là phần ổn định; các tính năng cụ thể thì không.
Cách chọn
Không có câu trả lời chung cho việc công cụ nào tạo ra mã tốt hơn — điều đó thay đổi theo ngôn ngữ, repository và tác vụ, còn các benchmark đối đầu được công bố hiếm khi giống codebase của bạn. Điều bạn có thể quyết định trước là công cụ nào phù hợp với cách bạn làm việc:
| Nếu bạn muốn… | Nghiêng về |
|---|---|
| Máy chủ MCP, subagent, hook, skill | Claude Code |
| Lập kế hoạch rồi thực thi các thay đổi lớn | Claude Code |
| Cấu hình chung cho cả nhóm trong một tệp settings được commit | Claude Code |
| Một tệp nhị phân mã nguồn mở có thể kiểm tra | Codex CLI |
| Cơ chế sandbox thực thi cục bộ nghiêm ngặt hơn | Codex CLI |
| Ở trong một họ mô hình của một nhà cung cấp | Công cụ phù hợp với điều đó |
Khuyến nghị thành thật: cả hai đều miễn phí để cài đặt, vì vậy hãy đưa cùng một tác vụ thực từ repository của bạn qua từng công cụ và so sánh các diff. Một buổi chiều làm việc đó cho bạn nhiều thông tin hơn bất kỳ bài viết so sánh nào, kể cả bài này.
Chi phí chạy mỗi công cụ
Chi phí là thuộc tính của mô hình và số bước tác tử, không phải của CLI. Cả hai công cụ đều gửi lại system prompt, lịch sử tác vụ và ngữ cảnh tệp mới ở mỗi bước, nên mức phí trên mỗi token cộng dồn giống hệt nhau. Hãy so sánh các mô hình bạn thực sự sẽ chạy — cột Claude bên dưới đối chiếu với bảng giá API chính thức của Anthropic, trong đó liệt kê mức phí trên mỗi token của mọi mô hình và chi phí tính mẫu của một bước tác tử điển hình:
| Mô hình | Chạy trong | Kunavo vào / ra trên mỗi 1M |
|---|---|---|
claude-sonnet-4-6 | Claude Code | $2,10 / $10,50 |
claude-opus-5 | Claude Code | $3,50 / $17,50 |
claude-haiku-4-5 | Claude Code (nền) | $0,70 / $3,50 |
gpt-5-6-sol | Các client tương thích OpenAI | $2,00 / $12,00 |
Một bước tác tử điển hình có khoảng 25.000 token đầu vào và 1.200 token đầu ra, vì vậy một tác vụ 20 bước sẽ có chi phí khoảng $1,30 trên claude-sonnet-4-6 theo các mức giá này. Hãy đưa số liệu của riêng bạn vào trình tính chi phí thay vì tin vào một ví dụ tính sẵn duy nhất — công việc thiên về đầu ra sẽ làm thay đổi thứ hạng, vì mức phí đầu ra giữa các mô hình này khác nhau nhiều hơn mức phí đầu vào.
Endpoint tùy chỉnh: một điểm bất đối xứng thực tế
Cả hai công cụ đều hỗ trợ endpoint bên thứ ba, nhưng không như nhau, và đây là khác biệt thực tế nhất giữa chúng hiện nay.
Claude Code đọc ANTHROPIC_BASE_URL và sử dụng Anthropic Messages API, được nhiều nhà cung cấp cung cấp. Trỏ nó sang nơi khác chỉ cần ba biến môi trường và không cần phần mềm bổ sung (hướng dẫn thiết lập).
Codex CLI nghiêm ngặt hơn. Khối model_providers có khóa wire_api, và tham chiếu cấu hình hiện tại liệt kê responses là giá trị được hỗ trợ duy nhất — nghĩa là nhà cung cấp tùy chỉnh phải cung cấp OpenAI Responses API tại /v1/responses, không phải /v1/chat/completions phổ biến hơn nhiều:
# ~/.codex/config.toml — wire_api accepts only "responses"
model = "gpt-5-6-sol"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses" # requires POST /v1/responses upstream
# A provider that serves only /v1/chat/completions still cannot be
# configured here, whatever base_url you give it.Điều đó vẫn loại trừ phần lớn gateway tương thích OpenAI, vốn chỉ cung cấp /v1/chat/completions và không có gì khác. Đây là lý do rất nhiều nhà cung cấp “hoạt động với mọi endpoint tương thích OpenAI” âm thầm thất bại với Codex CLI: base URL được chấp nhận, nhưng mọi yêu cầu đều trả về 404.
Kunavo cung cấp cả hai bề mặt — endpoint chat tương thích OpenAI và Responses API tại /v1/responses — nên cấu hình trên hoạt động nguyên trạng, và gpt-5-6-sol ($2,00 / $12,00 trên mỗi 1M) chạy được từ Codex CLI cũng như Cursor, Kilo Code và Cline. Hướng dẫn đầy đủ, bao gồm biến môi trường mà Codex đọc key từ đó, nằm trong hướng dẫn API key của Codex CLI.
Một điều đáng biết: vì Codex phụ thuộc vào giao thức thay vì họ mô hình, mọi mô hình chat phía sau endpoint đó đều có thể trả lời — bao gồm cả Claude. Khi trỏ đến claude-opus-5, Codex CLI chạy đầu-cuối với các lệnh gọi công cụ được giữ nguyên, gateway chuyển đổi Responses sang Messages và ngược lại. Đổi lại, các mục reasoning không hiển thị của Codex không có tương đương trên upstream không phải GPT và sẽ bị loại bỏ, nên mô hình mất scratchpad riêng giữa các lượt; bản ghi hiển thị không bị ảnh hưởng.
Vì vậy, sự bất đối xứng hẹp hơn vẻ bề ngoài, nhưng chưa biến mất: Claude Code hoạt động với gần như mọi nhà cung cấp Messages API, còn Codex CLI chỉ hoạt động với số ít nhà cung cấp triển khai Responses. Điều này vẫn đáng cân nhắc nếu chạy trên endpoint riêng — vì chi phí, định tuyến hoặc quản trị — là một phần lý do bạn lựa chọn giữa chúng. Nếu chi phí là yếu tố quyết định, bảng giá API chính thức của Anthropic nêu rõ chi phí của từng cấp Claude trên mỗi 1M token theo mức giá công bố của Anthropic, chính là con số thực sự làm thay đổi hóa đơn lập trình tác tử.
Các so sánh liên quan
Hai câu hỏi gần kề mà trang này không trả lời. Codex so với ChatGPT là vấn đề chọn bề mặt OpenAI nào để mở thay vì chọn CLI nào để cài đặt — câu trả lời phụ thuộc vào hạn mức gói dùng chung và tốc độ tác tử tiêu hao hạn mức đó. Cline so với Claude Code chuyển từ terminal sang thanh bên của trình soạn thảo, nơi khác biệt quyết định là hình thức thanh toán thay vì giao thức.
Một công cụ có thể chạy mô hình của công cụ kia không?
Theo một hướng thì có. Codex CLI có thể chạy mô hình Claude thông qua gateway cung cấp Responses API — nó phụ thuộc vào giao thức truyền tải, không phụ thuộc vào họ mô hình, nên đặt model = "claude-opus-5" trong khối provider ở trên sẽ hoạt động đầu-cuối, bao gồm cả lệnh gọi công cụ. Đổi lại, các mục reasoning không hiển thị của Codex bị loại bỏ khi chuyển đến upstream không phải GPT, khiến mô hình mất scratchpad riêng giữa các lượt.
Hướng ngược lại khó hơn: Claude Code mong đợi các slug thuộc họ Claude trên Messages API, nên để truy cập GPT từ đó cần một bộ định tuyến cục bộ — thêm một thành phần cần vận hành và mất một số tính năng, vì chỉ trên tuyến gốc thì cache_control mới được truyền qua mà không dịch. Hướng dẫn bộ định tuyến Claude Code trình bày khi nào việc thiết lập đó đáng làm và khi nào chỉ cần đổi base URL là đủ.
Chạy mỗi công cụ trên họ mô hình mà nó được thiết kế cho vẫn là mặc định đơn giản hơn. Nhưng nếu bạn muốn cơ chế sandbox của Codex CLI với Claude phía sau, tổ hợp đó hiện có thể sử dụng — xem hướng dẫn API key của Codex CLI.
Câu hỏi thường gặp
Claude Code và Codex CLI khác nhau như thế nào?
Cả hai đều là công cụ lập trình tác tử ưu tiên thiết bị đầu cuối, có thể đọc repository, đề xuất chỉnh sửa và chạy lệnh. Những khác biệt quan trọng trong thực tế là họ mô hình đứng phía sau (Claude so với GPT), phạm vi mở rộng — Claude Code có MCP, subagent, hook và skill, còn Codex CLI là tệp nhị phân Rust mã nguồn mở với cơ chế sandbox cục bộ — và định dạng cấu hình. Không công cụ nào hoàn toàn tốt hơn; chúng phù hợp với các quy trình khác nhau và cả hai đều có thể chạy với endpoint tùy chỉnh.
Tôi có thể sử dụng Claude Code và Codex CLI cùng lúc không?
Có — đây là các tệp nhị phân riêng biệt với cấu hình riêng và không xung đột. Chúng khác nhau ở mức độ tự do khi trỏ đến endpoint tùy chỉnh: Claude Code đọc ANTHROPIC_BASE_URL và sử dụng Anthropic Messages API, trong khi khối model_providers của Codex CLI chỉ hỗ trợ wire_api = responses, nên nhà cung cấp tùy chỉnh phải cung cấp OpenAI Responses API thay vì endpoint chat completions phổ biến hơn. Một gateway cung cấp cả hai — Kunavo có — có thể chạy một trong hai CLI bằng cùng một key.
Claude Code hay Codex CLI rẻ hơn?
Chi phí do mô hình và số bước tác tử quyết định, không phải bản thân CLI. Cả hai công cụ đều gửi lại ngữ cảnh ở mỗi bước, vì vậy mức phí trên mỗi token cộng dồn theo cùng cách. Hãy so sánh các mô hình cụ thể mà bạn thực sự sẽ chạy thay vì so sánh công cụ, đồng thời cân nhắc cả mức phí đầu ra lẫn đầu vào, vì công việc tác tử thiên về đầu ra có thể làm thay đổi thứ hạng giữa các họ mô hình.
Codex CLI có thể dùng mô hình Claude, hoặc Claude Code dùng mô hình GPT không?
Codex CLI có thể chạy mô hình Claude thông qua gateway cung cấp Responses API: nó phụ thuộc vào giao thức truyền tải, không phụ thuộc vào họ mô hình, nên với model = claude-opus-5, nó chạy đầu-cuối, bao gồm cả lệnh gọi công cụ. Chiều ngược lại khó hơn — Claude Code mong đợi slug thuộc họ Claude trên Messages API, và để truy cập GPT từ đó cần một bộ định tuyến cục bộ. Chạy mỗi công cụ trên họ mô hình mà nó được thiết kế cho vẫn là mặc định đơn giản hơn, nhưng hướng Codex sang Claude thực sự hoạt động.
Tôi nên chọn Claude Code hay Codex CLI như thế nào?
Hãy chọn dựa trên mức độ phù hợp với quy trình, không phải benchmark. Chọn Claude Code nếu bạn muốn máy chủ MCP, subagent, hook hoặc plan mode, hoặc nếu nhóm của bạn đã chuẩn hóa trên các tệp settings. Chọn Codex CLI nếu bạn muốn một tệp nhị phân mã nguồn mở có thể kiểm tra, hoặc cơ chế sandbox thực thi cục bộ nghiêm ngặt hơn. Cả hai đều đủ rẻ để cài song song và đánh giá trên một tác vụ thực từ repository của bạn, cách này đáng tin cậy hơn bất kỳ so sánh được công bố nào.
Công cụ nào viết mã tốt hơn?
Điều đó phụ thuộc vào tác vụ, ngôn ngữ và repository, đồng thời thay đổi theo mỗi bản phát hành mô hình. Bất kỳ ai tuyên bố có một người chiến thắng chung bền vững đều đã đi quá xa. Hãy chạy cả hai trên công việc của chính bạn — đó là kết quả duy nhất có thể chuyển giao.
Tôi có phải chọn một công cụ không?
Không. Đây là các tệp nhị phân riêng biệt với cấu hình riêng và không xung đột. Nhiều người cài cả hai và sử dụng công cụ phù hợp với từng tác vụ.
Một trong hai có miễn phí không?
Cả hai CLI đều miễn phí để cài đặt; không công cụ nào miễn phí để chạy, vì mỗi bước đều là một lệnh gọi mô hình có tính phí. Xem Claude Code có miễn phí không để biết các phương thức tính theo gói đăng ký và theo token thực sự được so sánh như thế nào.
Còn Cursor, Kilo Code và Cline thì sao?
Đó là các tiện ích mở rộng cho trình soạn thảo thay vì tác tử thiết bị đầu cuối, và chúng nhận base URL tương thích OpenAI trong một trường cài đặt thay vì biến môi trường. Mỗi công cụ có cách thiết lập và tính năng định tuyến mô hình riêng: Cline (tách Plan/Act), Roo Code (một hồ sơ cấu hình cho mỗi chế độ) và Kilo Code.