AI-native development⏱ 9 phút đọc · 7 thg 10, 2026

OpenAI Codex là gì? Cài đặt, AGENTS.md, gói ChatGPT và so với Claude Code

Codex giờ là coding agent của OpenAI chạy ở terminal, ChatGPT desktop app, IDE và cloud. Cách cài đặt, chạy lần đầu, viết AGENTS.md, chọn sandbox, gói ChatGPT nào dùng được và khi nào nên chọn Codex thay vì Claude Code.

HOLETEX · POST
CODEX
là gì?

Bạn đang trả tiền ChatGPT Plus, ngày nào cũng copy đoạn code từ editor dán vào tab trình duyệt, hỏi xong lại copy câu trả lời dán ngược về. Một đồng nghiệp hỏi: "Gói Plus có Codex rồi, sao không để nó sửa thẳng trong repo?". Bạn search "codex là gì" và thấy mỗi bài nói một kiểu: model cũ từng chạy GitHub Copilot, một CLI, hay giao task trên web.

Tên Codex ban đầu là một model OpenAI ra năm 2021. Còn Codex mà dev nói tới năm 2026 là coding agent của OpenAI: nó đọc codebase, sửa file, chạy lệnh và review thay đổi, có mặt ở terminal, IDE, ChatGPT desktop app và cloud. Bài này viết theo Codex CLI 0.161.0 (ra ngày 7/10/2026) và docs chính thức, nay đã chuyển sang learn.chatgpt.com (link cũ developers.openai.com/codex tự chuyển hướng về đó).

Codex là gì trong năm 2026: một agent, nhiều nơi dùng

Cùng một tài khoản ChatGPT, bạn dùng Codex ở bốn bề mặt chính:

Bề mặtDùng khiCách mở
Codex CLILàm việc trong terminal, script hóa, chạy trong CIcodex
ChatGPT desktop appMuốn giao diện trực quan, chạy nhiều việc song song, xem diff dễ hơnMở app, chọn Codex (hoặc chế độ Work)
IDE extensionĐang code trong VS Code, Cursor, Windsurf và muốn agent thấy file đang mởBiểu tượng Codex ở sidebar
Codex cloudGiao task chạy nền trên repo GitHub, nhận diff hoặc PRchatgpt.com/codex, @codex trên PR, codex cloud

JetBrains IDE (qua AI Chat) và Xcode cũng cho chọn Codex làm agent, gói trả phí có thêm Codex trên iOS. Các bề mặt dùng chung hạn mức của gói ChatGPT.

Codex CLI là mã nguồn mở (Apache-2.0) tại github.com/openai/codex và cập nhật gần như hằng tuần, nên hướng dẫn trên mạng không khớp với máy bạn thì kiểm tra phiên bản trước.

Gói ChatGPT nào dùng được Codex

Theo trang pricing của Codex (cập nhật tới 8/10/2026):

GóiGiáCodex được gì
Free$0GPT-6 Luna tốc độ Standard trong desktop app, tùy đợt rollout
Go$8/thángGiống Free
Plus$20/thángWeb, CLI, IDE extension, iOS, code review tự động, GPT-6.1 Sol, GPT-6 Sol và Luna
Pro$100, $200 hoặc $500/thángMọi thứ của Plus, hiện không áp giới hạn 5 giờ; gói $500 có Astra Ultrafast
Business$20/người/tháng (trả năm, từ 2 người; $25 nếu trả tháng)Có quản trị cho team, VM cloud lớn hơn
Enterprise, EduLiên hệ salesCho tổ chức
API keyTheo tokenTính phí theo giá API, không dùng hạn mức gói

Hạn mức không tính theo số request cố định. Docs đưa ra khoảng ước tính số message local mỗi 5 giờ:

ModelPlusBusiness (Standard)
GPT-6 Astra5 đến 455 đến 45
GPT-6.1 Sol15 đến 16015 đến 160
GPT-6 Sol15 đến 15015 đến 150
GPT-6 Luna350 đến 3.000350 đến 3.000

Khoảng rộng vì mức tiêu hao phụ thuộc độ lớn repo và độ phức tạp của task. Local và cloud dùng chung hạn mức, hết thì mua thêm credits. Gói Pro hiện không có giới hạn 5 giờ, nhưng giới hạn theo tuần vẫn có thể áp dụng. Số liệu thật của bạn xem ở trang usage trong cài đặt Codex.

Với sinh viên: gói Free đã thử được Codex trong desktop app với GPT-6 Luna, còn CLI, IDE extension và cloud cần từ Plus (hoặc API key).

Chọn model: Astra, Sol hay Luna

OpenAI ra GPT-6 Astra ngày 3/9, GPT-6 Sol và GPT-6 Luna ngày 22/9, rồi GPT-6.1 Sol ngày 29/9/2026. GPT-6.1 Sol hiện là model mặc định trong Codex CLI. Ba model nên dùng trong Codex:

ModelOpenAI mô tảGiá API (input / output mỗi 1M token)Dùng trong Codex khi
GPT-6 AstraMạnh nhất, cho việc khó end-to-end$10 / $50Task khó, nhiều bước, sai là tốn kém
GPT-6.1 SolGần bằng Astra cho việc phức tạp, chi phí thấp hơn$2 / $10Mặc định hợp lý cho việc code hằng ngày
GPT-6 LunaHiệu quả nhất, cho task tập trung, khối lượng lớn$0,10 / $0,50Sửa nhỏ, tóm tắt, trích xuất, task lặp lại

Ngoài model còn có reasoning effort: Low (trong app gọi là Light), Medium, High, Extra high, Max và Ultra (dùng thêm subagent để chia việc). Mức mặc định tùy client và model, trong CLI xem bằng /model. Effort cao thường tốt hơn ở task khó nhưng chậm và tốn hạn mức hơn. Bắt đầu với Sol ở mức mặc định, chỉ tăng effort hoặc đổi sang Astra khi nó vấp.

Đổi model bằng /model trong phiên, bằng cờ codex --model gpt-6.1-sol, hoặc cố định trong config.toml. GPT-5.5 sẽ ngừng trong ChatGPT và Codex ngày 14/10/2026. So sánh GPT-6 với Claude, Gemini, Grok cho lập trình có ở bài so sánh model AI lập trình 2026, còn chi tiết dòng GPT-6 có ở bài GPT-6 là gì.

Cài Codex CLI và chạy lần đầu

Chọn một trong các cách cài:

bash
# npm
npm install -g @openai/codex

# Homebrew (macOS)
brew install --cask codex

# macOS / Linux, installer chính thức
curl -fsSL https://chatgpt.com/codex/install.sh | sh

Trên Windows, CLI chạy native, cài bằng PowerShell:

text
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

Sau đó vào thư mục dự án và chạy codex:

bash
cd du-an-cua-ban
codex

Lần đầu, chọn Sign in with ChatGPT để dùng hạn mức của gói. Đăng nhập bằng API key cũng được nhưng sẽ tính tiền theo token.

Trong phiên đầu tiên, mình gợi ý làm theo thứ tự này:

text
/status        xem model, quyền và thư mục đang làm việc
/permissions   kiểm tra Codex được làm gì trước khi giao việc
/init          tạo file AGENTS.md cho dự án

Task đầu tiên nên chỉ đọc, để xem nó hiểu codebase tới đâu mà chưa có rủi ro:

text
Đọc codebase và giải thích luồng đăng nhập: file nào xử lý, dữ liệu đi qua đâu,
token lưu ở đâu. Chưa sửa gì. Cuối cùng liệt kê 3 chỗ bạn thấy dễ gây bug.

Gõ @ để gắn file vào prompt, -i để đính kèm ảnh. Vài lệnh hay dùng:

LệnhTác dụng
/reviewReview thay đổi chưa commit, so với base branch, hoặc một commit cụ thể
/diffXem các file Codex đã đổi
/compactNén lịch sử hội thoại khi phiên đã dài
/newMở phiên mới cho task không liên quan
codex resumeQuay lại phiên trước
codex exec "..."Chạy không tương tác, dùng trong script và CI
codex updateCập nhật CLI

Chạy /review trước khi commit, kể cả với code tự viết: preset "review uncommitted changes" đọc cả file staged, unstaged và file mới chưa track.

AGENTS.md: dạy Codex quy ước của dự án

AGENTS.md là file markdown Codex tự đọc trước khi làm việc. Codex tìm file theo thứ tự:

  1. Global: ~/.codex/AGENTS.override.md nếu có, không thì ~/.codex/AGENTS.md, dùng cho thói quen cá nhân.
  2. Dự án: đi từ gốc git repo xuống thư mục hiện tại, mỗi cấp đọc AGENTS.override.md, không có thì AGENTS.md.

Các file được nối lại từ gốc xuống, file gần thư mục bạn đang làm việc nằm sau nên được ưu tiên hơn. Tổng dung lượng mặc định giới hạn 32 KiB (chỉnh bằng project_doc_max_bytes), quá mức đó các file sau sẽ không được đọc. Muốn Codex đọc tên file khác (ví dụ TEAM_GUIDE.md) thì thêm vào project_doc_fallback_filenames.

Một AGENTS.md mẫu cho dự án Next.js, thay lệnh và đường dẫn bằng của dự án bạn:

text
# AGENTS.md

## Dự án
Next.js (App Router) + TypeScript + Prisma. Package manager: pnpm.

## Lệnh
- Cài dependency: `pnpm install`
- Chạy test: `pnpm test`
- Kiểm tra type: `pnpm typecheck`
- Lint: `pnpm lint`

## Quy ước
- Component đặt trong `src/components/`, mỗi file một component, dùng named export.
- Gọi API qua các hàm trong `src/lib/api/`, không fetch trực tiếp trong component.
- Không sửa file cũ trong `prisma/migrations/`. Cần đổi schema thì tạo migration mới.

## Trước khi báo xong
- Chạy `pnpm typecheck` và `pnpm test`, sửa tới khi pass.
- Tóm tắt các file đã đổi và lý do.

Phần "Trước khi báo xong" có ích nhất: agent tự kiểm chứng kết quả thay vì chỉ "trông như xong". Chỉ thêm dòng khi agent đã sai cùng một điều, xóa dòng không còn cần. Cách giữ context gọn cho agent có ở bài Context engineering là gì.

AGENTS.md là định dạng dùng chung: Cursor, Copilot cũng đọc, và Claude Code tự đọc AGENTS.md khi dự án chưa có CLAUDE.md. Team dùng nhiều công cụ nên viết quy ước một lần ở AGENTS.md.

AGENTS.md là lời dặn, agent thường làm theo nhưng không đảm bảo. Việc bắt buộc phải xảy ra (chặn lệnh nguy hiểm, chạy lint sau khi sửa) thì dùng hooks (cấu hình ở .codex/hooks.json, sự kiện PreToolUse có thể chặn tool call). Việc phụ dễ làm phình context của phiên chính (tìm kiếm, đọc log dài) thì giao cho subagent (khai báo bằng file TOML trong .codex/agents/).

Sandbox và approval: Codex được phép làm gì

Có hai lớp tách biệt, nên hiểu trước khi để Codex chạy lệnh trên máy bạn:

Sandbox quyết định Codex làm được gì về mặt kỹ thuật, được thực thi ở cấp hệ điều hành (Seatbelt trên macOS, bubblewrap trên Linux và WSL2, sandbox riêng trên Windows):

Sandbox modeCodex làm được
read-onlyĐọc file, không sửa file hay chạy lệnh nếu chưa được duyệt
workspace-writeĐọc, sửa file trong workspace, chạy lệnh thông thường trong phạm vi đó. Mặc định cho làm việc local, mạng tắt mặc định
danger-full-accessKhông còn giới hạn file hay mạng

Approval policy quyết định khi nào Codex dừng lại hỏi bạn: on-request (làm trong sandbox, cần vượt ra ngoài thì hỏi) hoặc never (không bao giờ hỏi). Giá trị cũ untrusted không còn được hỗ trợ, gặp trong tutorial cũ thì bỏ qua.

Trong phiên, /permissions gom hai lớp này thành các preset:

  • Ask for approval: workspace-write + on-request. Nên dùng mặc định.
  • Approve for me: các yêu cầu đủ điều kiện được tự động review thay vì hỏi bạn (trong config là approvals_reviewer = "auto_review").
  • Full access: danger-full-access + never.

Muốn cố định cấu hình, sửa ~/.codex/config.toml:

text
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
approval_policy = "on-request"
sandbox_mode = "workspace-write"

Cấu hình riêng cho một repo thì đặt .codex/config.toml trong repo (chỉ nạp khi dự án đã được đánh dấu tin cậy). Chạy một lần với quyền khác thì dùng cờ, ví dụ codex --sandbox read-only.

Vài lỗi hay gặp:

  • Bật Full access cho nhanh. Một lệnh sai trong chế độ này có thể xóa file ngoài dự án hoặc gửi dữ liệu ra mạng. Chỉ dùng trong container hoặc máy ảo dùng một lần.
  • Thấy lệnh npm install bị chặn rồi tưởng Codex lỗi. Đó là do mạng tắt mặc định trong workspace-write. Duyệt yêu cầu khi Codex hỏi. Repo nào thường xuyên cần mạng thì bật riêng cho workspace-write trong config.toml, đừng chuyển sang Full access:
text
  [sandbox_workspace_write]
  network_access = true
  
  • Để .env có secret thật trong workspace. Codex đọc được mọi thứ trong đó. Dùng secret riêng cho dev.

Codex cloud: giao việc chạy nền

Codex cloud chạy task trong môi trường cô lập, bạn giao việc rồi làm việc khác:

  1. Vào chatgpt.com/codex, kết nối GitHub (GitLab đang ở dạng beta).
  2. Tạo environment cho repo: dependency, biến môi trường, secret. Internet trong môi trường này tắt mặc định, cần thì bật riêng.
  3. Giao task từ web, từ terminal bằng codex cloud, hoặc comment @codex trên một pull request.

Kết quả trả về là bản tóm tắt kèm diff, bạn yêu cầu sửa tiếp hoặc mở pull request. Lưu ý: theo trang pricing, cloud chat dùng chung hạn mức với local và có thể tốn hạn mức hơn so với chạy cùng task ở local.

Cloud hợp với task rõ ràng, độc lập: viết test cho một module, sửa bug có issue mô tả kỹ, nâng version dependency. Task cần hỏi đáp qua lại nhiều lần thì làm local nhanh hơn.

Codex vs Claude Code: chọn cái nào

Hai công cụ giống nhau nhiều hơn khác: đều có CLI, IDE extension, desktop app và bản chạy trên web, đều hỗ trợ MCP và file quy tắc cho dự án. Khác biệt nằm ở chi tiết:

OpenAI CodexClaude Code
ModelGPT-6 Astra, GPT-6.1 Sol, GPT-6 LunaMặc định Claude Opus 5.5 (Pro, Max, Team, API), đổi được sang Fable 5.1, Sonnet 5.5, Haiku 5.5
Gói tối thiểuFree (desktop app, Luna); CLI và IDE từ Plus $20Pro $20/tháng, gói Free không có
File quy tắcAGENTS.mdCLAUDE.md, đọc cả AGENTS.md
Kiểm soát an toànSandbox cấp hệ điều hành bật sẵn + approval policyPermission mode, permission rules, hooks; sandbox cấp hệ điều hành cho lệnh Bash (tắt mặc định, bật bằng /sandbox)
Tùy biến sâuMCP, plugin, skill, hooks, subagent (file TOML)MCP, plugin, skill, hooks, subagent (file markdown)
Chạy nềnCodex cloud, @codex trên PR, tích hợp SlackClaude Code trên web, @Claude trong Slack, GitHub Code Review
Không tương táccodex execclaude -p
Mã nguồn CLIMở (Apache-2.0)Không nêu trong docs

Chọn theo tình huống:

  • Đã trả ChatGPT Plus, chưa muốn thêm gói mới: dùng Codex trước, bạn có sẵn hạn mức.
  • Muốn agent bị giới hạn quyền ở cấp hệ điều hành ngay từ đầu: Codex bật sandbox sẵn, còn Claude Code phải tự bật /sandbox.
  • Team đã đầu tư setup cho một bên (hook, subagent, skill): cả hai đều có các công cụ này nhưng định dạng file khác nhau, chuyển qua lại không phải copy là chạy. Ở lại với công cụ đang có setup thường rẻ hơn. Xem thêm bài Claude Code nâng cao.
  • Thích model của hãng nào hơn cho codebase của bạn: cách chắc nhất là chạy cùng một task trên cả hai, trên hai git worktree riêng, rồi so diff.

Nhiều dev dùng cả hai: một công cụ viết, công cụ còn lại review. Vì Claude Code cũng đọc AGENTS.md khi dự án chưa có CLAUDE.md (hoặc bạn import @AGENTS.md từ CLAUDE.md), bạn có thể duy trì một bộ quy ước chung. Mới làm quen với agent trong terminal thì đọc thêm Claude Code là gì, cách hoạt động áp dụng được cho cả Codex.

Tóm lại

Codex năm 2026 là coding agent của OpenAI, dùng chung một tài khoản ChatGPT trên terminal, IDE, desktop app và cloud. Cài mất vài phút, nhưng dùng tốt phụ thuộc ba thứ: AGENTS.md ngắn mà đúng, giữ preset Ask for approval trong những tuần đầu, và chạy /review rồi tự đọc diff trước mỗi lần commit.

Thói quen review đó chỉ có tác dụng khi bạn đủ hiểu code để biết agent đang làm đúng hay sai. Nếu bạn làm frontend và muốn có nền đó, khóa React PRO của HoleTex giúp bạn làm chủ React tới mức đánh giá được code do Codex hay Claude Code sinh ra, thay vì chấp nhận mọi thứ nó đề xuất.

Bài liên quan

Nguồn tham khảo: Codex docs (learn.chatgpt.com), Quickstart, Codex CLI, CLI commands, Pricing, Models, AGENTS.md, Hooks, Subagents, Sandboxing, Config basics, Codex cloud, Code review, IDE extension, Changelog, openai/codex releases (github.com), OpenAI models (developers.openai.com), Claude Code overview (code.claude.com), Claude Code model config, Claude Code sandboxing, Claude Code memory, Claude pricing (claude.com). Cập nhật 2026-10-08.

Thấy hay? Chia sẻ