# OpenAI Codex CLI Tham Khảo Nhanh

*Sử dụng CLI, chế độ, cấu hình, lệnh chính*

> Source: OpenAI Codex Documentation (github.com/openai/codex) · MIT

## Bắt Đầu

### Cài Đặt

```
npm install -g @openai/codex
```

### Xác Thực

```
export OPENAI_API_KEY="sk-..."
```

*Đặt trong shell profile hoặc file .env*

### Chạy Lần Đầu

```
codex "explain this project"
codex "add input validation to app.py"
```

## Lệnh

### Tương Tác (Mặc Định)

```
codex                       # bắt đầu phiên tương tác
codex "fix the login bug"   # với prompt ban đầu
```

### codex exec

```
codex exec "write unit tests for utils.py"
codex exec "refactor db.py to use async"
```

*Không tương tác — chạy tác vụ đến hoàn thành*

### codex review

```
codex review                # review thay đổi đã staged
codex review --diff HEAD~3  # review 3 commit cuối
```

## Chế Độ

### Chế Độ Phê Duyệt

| Command | Description |
|---------|-------------|
| `suggest` | Hiển thị thay đổi đề xuất, yêu cầu phê duyệt cho mỗi lần sửa file và lệnh |
| `auto-edit` | Tự động áp dụng chỉnh sửa file, yêu cầu phê duyệt cho lệnh shell |
| `full-auto` | Áp dụng chỉnh sửa và chạy lệnh không cần phê duyệt |

### Đặt Chế Độ

```
codex --approval-mode suggest "add tests"
codex --approval-mode auto-edit "refactor"
codex --approval-mode full-auto "fix lint"
```

## Cấu Hình

### File Cấu Hình

```
# ~/.codex/config.yaml
model: o4-mini
approval_mode: suggest
providers:
  - name: openai
    api_key_env: OPENAI_API_KEY
```

*Ghi đè theo dự án: .codex/config.yaml trong thư mục gốc*

### Hướng Dẫn Dự Án

```
# AGENTS.md (trong thư mục gốc dự án)
- Run tests with: uv run pytest
- Use ruff for linting
- Never modify migration files
```

### Tùy Chọn Cấu Hình Hữu Ích

| Command | Description |
|---------|-------------|
| `model` | Model sử dụng (vd: `o4-mini`, `o3`) |
| `approval_mode` | Chế độ phê duyệt mặc định |
| `providers` | Cấu hình nhà cung cấp API (key, base URL) |
| `history` | Lưu lịch sử hội thoại: `true` / `false` |

## Sandboxing

### Cách Hoạt Động

> Codex chạy lệnh trong môi trường sandbox để
ngăn tác dụng phụ không mong muốn. Truy cập mạng
bị tắt mặc định. Ghi file bị giới hạn trong
thư mục dự án.

### Tùy Chọn Sandbox

| Command | Description |
|---------|-------------|
| `macOS` | Apple Seatbelt (mặc định, tích hợp sẵn) |
| `Linux` | Sandbox dựa trên Docker |
| `--full-auto` | Yêu cầu sandbox phải được bật |
| `--dangerously-auto-approve` | Bỏ qua sandbox (không khuyến nghị) |

## Mẹo

### Prompt Hiệu Quả

| Command | Description |
|---------|-------------|
| `Cụ thể` | "add retry logic to fetch_data()" > "improve code" |
| `Tham chiếu file` | "fix the bug in src/auth.py" thu hẹp phạm vi |
| `Nêu ràng buộc` | "don't change the public API" đặt ranh giới |
| `Lặp lại` | Tiếp tục tinh chỉnh trong cùng phiên |

### Quy Trình Làm Việc

```
# Khám phá → lập kế hoạch → thực thi
codex "explain the auth module"
codex "plan how to add OAuth support"
codex --approval-mode auto-edit "add OAuth"

# Review trước khi commit
git add -A
codex review
```

### Flag Thường Dùng

| Command | Description |
|---------|-------------|
| `--model, -m` | Ghi đè model cho phiên này |
| `--approval-mode` | Đặt chế độ phê duyệt |
| `--quiet, -q` | Đầu ra tối thiểu |
| `--no-project-doc` | Bỏ qua AGENTS.md |
