Tiếng Việt

Cấu hình nâng cao

Để xem chỉ mục tài liệu đầy đủ, hãy tham khảo llms.txt. Bạn có thể xem phiên bản Markdown của các trang tài liệu bằng cách thêm .md vào URL của trang.

Sử dụng các tùy chọn này khi bạn cần kiểm soát chi tiết hơn đối với nhà cung cấp, chính sách và tích hợp. Để bắt đầu nhanh, hãy xem Kiến thức cơ bản về cấu hình.

Để tìm hiểu thêm về hướng dẫn dự án, các khả năng có thể tái sử dụng, lệnh gạch chéo tùy chỉnh, quy trình làm việc với tác nhân phụ và các tích hợp, hãy xem Tùy chỉnh. Để biết các khóa cấu hình, hãy xem Tham chiếu cấu hình.

Hồ sơ

Hồ sơ cho phép bạn lưu các lớp cấu hình có tên và chuyển đổi giữa chúng từ CLI. Khi bạn truyền --profile profile-name, Codex sẽ tải ~/.codex/config.toml, sau đó phủ ~/.codex/profile-name.config.toml lên trên. Tên hồ sơ có thể chứa chữ cái, chữ số, dấu gạch nối và dấu gạch dưới.

Tạo một tệp TOML riêng cho từng hồ sơ. Sử dụng các khóa cấu hình cấp cao nhất trong tệp hồ sơ; không lồng chúng bên dưới [profiles.profile-name].

# ~/.codex/deep-review.config.toml
model = "gpt-5.5"
model_reasoning_effort = "xhigh"
approval_policy = "on-request"
model_catalog_json = "/Users/me/.codex/model-catalogs/deep-review.json"
codex --profile deep-review
codex exec --profile deep-review "review this change"

Vì tệp hồ sơ là một lớp nằm trên cấu hình người dùng cơ sở và dưới cấu hình dự án cùng CLI, tệp này chỉ cần chứa các giá trị khác với cấu hình cơ sở. Tệp hồ sơ cũng có thể ghi đè model_catalog_json; Codex sử dụng giá trị trong hồ sơ khi cả hai tệp đều thiết lập khóa này.

Trong Codex 0.134.0 trở lên, --profile không còn đọc [profiles.profile-name] từ config.toml và bộ chọn profile = "profile-name" cấp cao nhất cũng không còn được hỗ trợ. Hãy chuyển các thiết lập hồ sơ cũ sang ~/.codex/profile-name.config.toml, sau đó xóa bảng [profiles.profile-name] tương ứng và bộ chọn profile = "profile-name" khỏi config.toml.

Ghi đè một lần từ CLI

Ngoài việc chỉnh sửa ~/.codex/config.toml, bạn có thể ghi đè cấu hình cho một lần chạy duy nhất từ CLI:

  • Ưu tiên các cờ chuyên dụng nếu có (ví dụ: --model).
  • Sử dụng -c / --config khi cần ghi đè một khóa bất kỳ.

Ví dụ:

# Dedicated flag
codex --model gpt-5.6-terra

# Generic key/value override (value is TOML, not JSON)
codex --config model='"gpt-5.6-terra"'
codex --config sandbox_workspace_write.network_access=true
codex --config 'shell_environment_policy.include_only=["PATH","HOME"]'

Lưu ý:

  • Khóa có thể sử dụng ký hiệu dấu chấm để đặt các giá trị lồng nhau (ví dụ: mcp_servers.context7.enabled=false).
  • Các giá trị --config được phân tích cú pháp dưới dạng TOML. Khi không chắc chắn, hãy đặt giá trị trong dấu ngoặc kép để shell không tách giá trị tại các dấu cách.
  • Nếu không thể phân tích giá trị dưới dạng TOML, Codex sẽ coi đó là một chuỗi.

Vị trí cấu hình và trạng thái

Codex lưu trạng thái cục bộ trong CODEX_HOME (mặc định là ~/.codex).

Các tệp phổ biến bạn có thể thấy tại đó:

  • config.toml (cấu hình cục bộ của bạn)
  • auth.json (nếu bạn sử dụng phương thức lưu trữ thông tin xác thực dựa trên tệp) hoặc chuỗi khóa/kho khóa của hệ điều hành
  • history.jsonl (nếu tính năng duy trì lịch sử được bật)
  • Trạng thái khác theo từng người dùng, chẳng hạn như nhật ký và bộ nhớ đệm

Để biết chi tiết về xác thực (bao gồm các chế độ lưu trữ thông tin xác thực), hãy xem Xác thực. Để xem danh sách đầy đủ các khóa cấu hình, hãy xem Tham chiếu cấu hình.

Để tìm hiểu về các giá trị mặc định, quy tắc và kỹ năng dùng chung được đưa vào repo hoặc đường dẫn hệ thống, hãy xem Cấu hình nhóm.

Nếu bạn chỉ cần trỏ nhà cung cấp OpenAI tích hợp sẵn đến một proxy LLM, bộ định tuyến hoặc dự án đã bật lưu trú dữ liệu, hãy đặt openai_base_url trong config.toml thay vì định nghĩa nhà cung cấp mới. Thao tác này thay đổi URL cơ sở cho nhà cung cấp openai tích hợp sẵn mà không cần mục model_providers.<id> riêng.

openai_base_url = "https://us.api.openai.com/v1"

Tệp cấu hình dự án (.codex/config.toml)

Ngoài cấu hình người dùng, Codex còn đọc các giá trị ghi đè theo phạm vi dự án từ những tệp .codex/config.toml trong repo. Codex duyệt từ thư mục gốc của dự án đến thư mục làm việc hiện tại và tải mọi tệp .codex/config.toml tìm thấy. Nếu nhiều tệp định nghĩa cùng một khóa, tệp gần thư mục làm việc của bạn nhất sẽ được ưu tiên.

Để bảo mật, Codex chỉ tải các tệp cấu hình theo phạm vi dự án khi dự án được tin cậy. Nếu dự án không được tin cậy, Codex sẽ bỏ qua các lớp .codex/ của dự án, bao gồm .codex/config.toml, hook cục bộ của dự án và quy tắc cục bộ của dự án. Các lớp người dùng và hệ thống vẫn độc lập và tiếp tục được tải.

Các đường dẫn tương đối trong cấu hình dự án (ví dụ: model_instructions_file) được phân giải tương đối theo thư mục .codex/ chứa config.toml.

Tệp cấu hình dự án không thể ghi đè các thiết lập chuyển hướng thông tin xác thực, thay đổi siêu dữ liệu yêu cầu của ứng dụng do máy chủ sở hữu, thay đổi xác thực nhà cung cấp, chọn hồ sơ cấu hình hoặc chạy các lệnh thông báo/đo từ xa cục bộ trên máy. Codex bỏ qua các khóa sau trong .codex/config.toml cục bộ của dự án và hiển thị cảnh báo khi khởi động nếu phát hiện chúng: openai_base_url, chatgpt_base_url, apps_mcp_product_sku, model_provider, model_providers, notify, profile, profiles, experimental_realtime_ws_base_urlotel. Hãy đặt các khóa nhà cung cấp, thông báo và đo từ xa trong ~/.codex/config.toml cấp người dùng; chọn hồ sơ cấu hình bằng --profile profile-name~/.codex/profile-name.config.toml.

Hook

Codex cũng có thể tải các hook vòng đời từ tệp hooks.json hoặc bảng [hooks] nội tuyến trong các tệp config.toml nằm cạnh những lớp cấu hình đang hoạt động.

Trong thực tế, bốn vị trí hữu ích nhất là:

  • ~/.codex/hooks.json
  • ~/.codex/config.toml
  • <repo>/.codex/hooks.json
  • <repo>/.codex/config.toml

Hook cục bộ của dự án chỉ được tải khi lớp .codex/ của dự án được tin cậy. Hook cấp người dùng không phụ thuộc vào trạng thái tin cậy của dự án.

Hook TOML nội tuyến sử dụng cùng cấu trúc sự kiện như hooks.json:

[[hooks.PreToolUse]]
matcher = "^Bash$"

[[hooks.PreToolUse.hooks]]
type = "command"
command = '/usr/bin/python3 "$(git rev-parse --show-toplevel)/.codex/hooks/pre_tool_use_policy.py"'
timeout = 30
statusMessage = "Checking Bash command"

Nếu một lớp chứa cả hooks.json[hooks] nội tuyến, Codex sẽ tải cả hai và hiển thị cảnh báo. Nên ưu tiên một cách biểu diễn cho mỗi lớp.

Để xem danh sách sự kiện hiện tại, các trường đầu vào, hành vi đầu ra và giới hạn, hãy xem Hook.

Vai trò agent ([agents] trong config.toml)

Để biết cách cấu hình vai trò tác nhân phụ ([agents] trong config.toml), hãy xem Tác nhân phụ.

Phát hiện thư mục gốc của dự án

Codex phát hiện cấu hình dự án (ví dụ: các lớp .codex/AGENTS.md) bằng cách duyệt ngược từ thư mục làm việc cho đến khi gặp thư mục gốc của dự án.

Theo mặc định, Codex coi thư mục chứa .git là thư mục gốc của dự án. Để tùy chỉnh hành vi này, hãy đặt project_root_markers trong config.toml:

# Treat a directory as the project root when it contains any of these markers.
project_root_markers = [".git", ".hg", ".sl"]

Đặt project_root_markers = [] để bỏ qua việc tìm kiếm trong các thư mục cha và coi thư mục làm việc hiện tại là thư mục gốc của dự án.

Nhà cung cấp mô hình tùy chỉnh

Nhà cung cấp mô hình xác định cách Codex kết nối với mô hình (URL cơ sở, API truyền dẫn, xác thực và các tiêu đề HTTP tùy chọn). Nhà cung cấp tùy chỉnh không thể sử dụng lại các ID nhà cung cấp tích hợp sẵn được dành riêng: openai, ollamalmstudio.

Định nghĩa các nhà cung cấp bổ sung và trỏ model_provider đến chúng:

model = "gpt-5.6-terra"
model_provider = "proxy"

[model_providers.proxy]
name = "OpenAI using LLM proxy"
base_url = "http://proxy.example.com"
env_key = "OPENAI_API_KEY"

[model_providers.local_ollama]
name = "Ollama"
base_url = "http://localhost:11434/v1"

[model_providers.mistral]
name = "Mistral"
base_url = "https://api.mistral.ai/v1"
env_key = "MISTRAL_API_KEY"

Nếu một nhà cung cấp tùy chỉnh hỗ trợ điểm cuối tìm kiếm trên web độc lập, hãy khai báo khả năng đó trong cấu hình nhà cung cấp:

[model_providers.proxy]
name = "OpenAI using LLM proxy"
base_url = "https://proxy.example.com/v1"
env_key = "OPENAI_API_KEY"
supports_standalone_web_search = true

Thiết lập này mặc định là false đối với nhà cung cấp tùy chỉnh. Tính năng tìm kiếm web độc lập đang được phát triển và bị tắt theo mặc định. Việc đặt khả năng của nhà cung cấp thành true không tự động bật tính năng này: nhà cung cấp phải hỗ trợ một điểm cuối tương thích, và mô hình cùng môi trường chạy được chọn phải hỗ trợ tìm kiếm độc lập. Chế độ web_search đã cấu hình và các hạn chế tìm kiếm được quản lý vẫn được áp dụng.

Thêm tiêu đề yêu cầu khi cần:

[model_providers.example]
http_headers = { "X-Example-Header" = "example-value" }
env_http_headers = { "X-Example-Features" = "EXAMPLE_FEATURES" }

Sử dụng xác thực dựa trên lệnh khi nhà cung cấp cần Codex lấy bearer token từ một trình trợ giúp thông tin xác thực bên ngoài:

[model_providers.proxy]
name = "OpenAI using LLM proxy"
base_url = "https://proxy.example.com/v1"
wire_api = "responses"

[model_providers.proxy.auth]
command = "/usr/local/bin/fetch-codex-token"
args = ["--audience", "codex"]
timeout_ms = 5000
refresh_interval_ms = 300000

Lệnh xác thực không nhận stdin và phải in token ra stdout. Codex loại bỏ khoảng trắng bao quanh, coi token trống là lỗi và chủ động làm mới tại refresh_interval_ms; đặt refresh_interval_ms = 0 để chỉ làm mới sau khi thử lại xác thực. Không kết hợp [model_providers.<id>.auth] với env_key, experimental_bearer_token hoặc requires_openai_auth.

Nhà cung cấp Amazon Bedrock

Codex bao gồm nhà cung cấp mô hình amazon-bedrock tích hợp sẵn. Hãy đặt trực tiếp nhà cung cấp này làm model_provider; khác với nhà cung cấp tùy chỉnh, nhà cung cấp tích hợp sẵn này chỉ hỗ trợ ghi đè hồ sơ và khu vực AWS lồng nhau.

model_provider = "amazon-bedrock"
model = "<bedrock-model-id>"

[model_providers.amazon-bedrock.aws]
profile = "default"
region = "eu-central-1"

Nếu bạn bỏ qua profile, Codex sẽ sử dụng chuỗi thông tin xác thực AWS tiêu chuẩn. Đặt region thành khu vực Bedrock được hỗ trợ sẽ xử lý các yêu cầu.

Để xem toàn bộ quy trình thiết lập, các tùy chọn xác thực, mô hình được hỗ trợ và tính khả dụng của tính năng, hãy xem Sử dụng ChatGPT Work và Codex với Amazon Bedrock.

Chế độ OSS (nhà cung cấp cục bộ)

Codex có thể chạy với một nhà cung cấp "mã nguồn mở" cục bộ như Ollama hoặc LM Studio khi bạn truyền --oss. Chọn một nhà cung cấp cho một lần chạy bằng --local-provider hoặc đặt oss_provider làm mặc định. Nếu không đặt tùy chọn nào, CLI tương tác sẽ nhắc bạn chọn; codex exec sẽ thoát và báo lỗi.

# Default local provider used with `--oss`
oss_provider = "ollama" # or "lmstudio"

Nhà cung cấp Azure và tinh chỉnh theo từng nhà cung cấp

[model_providers.azure]
name = "Azure"
base_url = "https://YOUR_PROJECT_NAME.openai.azure.com/openai"
env_key = "AZURE_OPENAI_API_KEY"
query_params = { api-version = "2025-04-01-preview" }
wire_api = "responses"
request_max_retries = 4
stream_max_retries = 10
stream_idle_timeout_ms = 300000

Để thay đổi URL cơ sở cho nhà cung cấp OpenAI tích hợp sẵn, hãy sử dụng openai_base_url; không tạo [model_providers.openai] vì bạn không thể ghi đè ID của nhà cung cấp tích hợp sẵn.

Khách hàng ChatGPT sử dụng lưu trú dữ liệu

Các dự án được tạo với tính năng lưu trú dữ liệu đã bật có thể tạo một nhà cung cấp mô hình để cập nhật base_url bằng tiền tố chính xác.

model_provider = "openaidr"
[model_providers.openaidr]
name = "OpenAI Data Residency"
base_url = "https://us.api.openai.com/v1" # Replace 'us' with domain prefix

Suy luận, độ chi tiết và giới hạn của mô hình

model_reasoning_summary = "none"          # Disable summaries
model_verbosity = "low"                   # Shorten responses
model_supports_reasoning_summaries = true # Force reasoning
model_context_window = 128000             # Context window size

model_verbosity chỉ áp dụng cho các nhà cung cấp sử dụng Responses API. Các nhà cung cấp Chat Completions sẽ bỏ qua thiết lập này.

Chính sách phê duyệt và chế độ sandbox

Chọn mức độ nghiêm ngặt của phê duyệt (ảnh hưởng đến thời điểm Codex tạm dừng) và cấp độ sandbox (ảnh hưởng đến quyền truy cập tệp/mạng).

Để biết các chi tiết vận hành cần lưu ý khi chỉnh sửa config.toml, hãy xem Các tổ hợp sandbox và phê duyệt phổ biến, Đường dẫn được bảo vệ trong thư mục gốc có thể ghiTruy cập mạng.

Để tìm hiểu về hồ sơ quyền đang ở giai đoạn beta dùng để cấu hình đồng thời quyền truy cập hệ thống tệp và mạng, hãy xem Quyền.

Bạn cũng có thể sử dụng chính sách phê duyệt chi tiết (approval_policy = { granular = { ... } }) để cho phép hoặc tự động từ chối từng loại lời nhắc. Điều này hữu ích khi bạn muốn phê duyệt tương tác thông thường cho một số trường hợp nhưng muốn những trường hợp khác, chẳng hạn như request_permissions hoặc lời nhắc từ tập lệnh kỹ năng, tự động thất bại theo hướng an toàn.

Đặt approvals_reviewer = "auto_review" để chuyển các yêu cầu phê duyệt tương tác đủ điều kiện qua quá trình đánh giá tự động. Thao tác này thay đổi bên đánh giá, không thay đổi ranh giới sandbox.

Sử dụng [auto_review].policy cho các chỉ dẫn chính sách của trình đánh giá cục bộ. guardian_policy_config được quản lý được ưu tiên hơn.

approval_policy = "untrusted"   # Other options: on-request, never, or { granular = { ... } }
approvals_reviewer = "user"     # Or "auto_review" for automatic review
sandbox_mode = "workspace-write"
allow_login_shell = false       # Optional hardening: disallow login shells for shell tools

# Example granular approval policy:
# approval_policy = { granular = {
#   sandbox_approval = true,
#   rules = true,
#   mcp_elicitations = true,
#   request_permissions = false,
#   skill_approval = false
# } }

[sandbox_workspace_write]
exclude_tmpdir_env_var = false  # Allow $TMPDIR
exclude_slash_tmp = false       # Allow /tmp
writable_roots = ["/Users/YOU/.pyenv/shims"]
network_access = false          # Opt in to outbound network

[auto_review]
policy = """
Use your organization's automatic review policy.
"""

Hồ sơ quyền có tên

Để tìm hiểu về các hồ sơ tích hợp sẵn, cú pháp hồ sơ tùy chỉnh và mô hình cấu hình hệ thống tệp cùng mạng đầy đủ, hãy xem Quyền.

Để xem danh sách khóa đầy đủ và các ràng buộc về yêu cầu, hãy xem Tham chiếu cấu hìnhCấu hình được quản lý.

Tắt hoàn toàn sandbox (chỉ sử dụng nếu môi trường của bạn đã cô lập các tiến trình):

sandbox_mode = "danger-full-access"

Chính sách môi trường shell

shell_environment_policy kiểm soát các biến môi trường mà Codex truyền cho các lệnh được khởi chạy. Bắt đầu với môi trường trống bằng inherit = "none" hoặc kế thừa một tập đã tinh gọn bằng inherit = "core". Thêm các giá trị tường minh và bộ lọc theo khóa để tránh truyền những bí mật không cần thiết cho các lệnh được khởi chạy.

[shell_environment_policy]
inherit = "core"
set = { MY_FLAG = "1" }
ignore_default_excludes = false

[shell_environment_policy.filters]
"AWS_*" = "exclude"
"AZURE_*" = "exclude"

Mẫu bộ lọc không phân biệt chữ hoa chữ thường và hỗ trợ * cùng ?. Sử dụng "exclude" để loại bỏ các biến khớp mẫu. Khi bất kỳ mẫu nào sử dụng "include", Codex chỉ giữ các biến khớp với một mẫu bao gồm. Các mẫu bao gồm không khôi phục những biến đã bị loại trừ. Khóa bộ lọc được hợp nhất giữa các lớp cấu hình mà không phân biệt chữ hoa chữ thường.

ignore_default_excludes mặc định là true, vì vậy Codex không tự động loại bỏ các tên biến chứa KEY, SECRET hoặc TOKEN. Đặt thành false để áp dụng các quy tắc loại trừ tự động đó trước khi chạy các bộ lọc tường minh của bạn.

Codex áp dụng các quy tắc loại trừ tự động trước, sau đó đến quy tắc loại trừ tùy chỉnh, các giá trị từ set và cuối cùng là danh sách cho phép theo mẫu bao gồm. Vì set chạy sau các quy tắc loại trừ nên nó có thể khôi phục một biến đã bị loại trừ. Danh sách cho phép theo mẫu bao gồm vẫn có thể loại bỏ giá trị đã được khôi phục đó.

Các mảng excludeinclude_only cũ vẫn được hỗ trợ cho những cấu hình hiện có. Không kết hợp bất kỳ mảng nào trong số đó với [shell_environment_policy.filters] trong cùng một lớp cấu hình; Codex sẽ từ chối tổ hợp đó.

Máy chủ MCP

Xem tài liệu MCP chuyên biệt để biết chi tiết cấu hình.

Khả năng quan sát và đo từ xa

Bật tính năng xuất nhật ký OpenTelemetry (OTel) để theo dõi các lần chạy Codex (yêu cầu API, SSE/sự kiện, lời nhắc, phê duyệt/kết quả công cụ). Tính năng này bị tắt theo mặc định; hãy chủ động bật qua [otel]:

[otel]
environment = "staging"   # defaults to "dev"
exporter = "none"         # set to otlp-http or otlp-grpc to send events
log_user_prompt = false   # redact user prompts unless explicitly enabled

Chọn một trình xuất:

[otel]
exporter = { otlp-http = {
  endpoint = "https://otel.example.com/v1/logs",
  protocol = "binary",
  headers = { "x-otlp-api-key" = "${OTLP_TOKEN}" }
}}
[otel]
exporter = { otlp-grpc = {
  endpoint = "https://otel.example.com:4317",
  headers = { "x-otlp-meta" = "abc123" }
}}

Nếu exporter = "none", Codex ghi lại các sự kiện nhưng không gửi gì. Trình xuất xử lý theo lô bất đồng bộ và đẩy hết dữ liệu khi tắt. Siêu dữ liệu sự kiện bao gồm tên dịch vụ, phiên bản CLI, thẻ môi trường, ID cuộc hội thoại, mô hình, thiết lập sandbox/phê duyệt và các trường theo từng sự kiện (xem Tham chiếu cấu hình).

Dữ liệu được phát ra

Codex phát ra các sự kiện nhật ký có cấu trúc cho lần chạy và hoạt động sử dụng công cụ. Các loại sự kiện tiêu biểu bao gồm:

  • codex.conversation_starts (mô hình, thiết lập suy luận, chính sách sandbox/phê duyệt)
  • codex.api_request (lần thử, trạng thái/thành công, thời lượng và chi tiết lỗi)
  • codex.sse_event (loại sự kiện luồng, thành công/thất bại, thời lượng cùng số lượng token trên response.completed)
  • codex.websocket_requestcodex.websocket_event (thời lượng yêu cầu cùng loại/trạng thái thành công/lỗi của từng thông điệp)
  • codex.user_prompt (độ dài; nội dung được che trừ khi được bật rõ ràng)
  • codex.tool_decision (được phê duyệt/từ chối và quyết định đến từ cấu hình hay người dùng)
  • codex.tool_result (thời lượng, trạng thái thành công, đoạn trích đầu ra)

Chỉ số OTel được phát ra

Khi quy trình chỉ số OTel được bật, Codex phát ra các bộ đếm và biểu đồ tần suất thời lượng cho hoạt động API, luồng và công cụ.

Mỗi chỉ số bên dưới cũng bao gồm các thẻ siêu dữ liệu mặc định: auth_mode, originator, session_source, modelapp.version.

Chỉ số Loại Trường Mô tả
codex.api_request bộ đếm status, success Số yêu cầu API theo trạng thái HTTP và thành công/thất bại.
codex.api_request.duration_ms biểu đồ tần suất status, success Thời lượng yêu cầu API tính bằng mili giây.
codex.sse_event bộ đếm kind, success Số sự kiện SSE theo loại sự kiện và thành công/thất bại.
codex.sse_event.duration_ms biểu đồ tần suất kind, success Thời lượng xử lý sự kiện SSE tính bằng mili giây.
codex.websocket.request bộ đếm success Số yêu cầu WebSocket theo thành công/thất bại.
codex.websocket.request.duration_ms biểu đồ tần suất success Thời lượng yêu cầu WebSocket tính bằng mili giây.
codex.websocket.event bộ đếm kind, success Số thông điệp/sự kiện WebSocket theo loại và thành công/thất bại.
codex.websocket.event.duration_ms biểu đồ tần suất kind, success Thời lượng xử lý thông điệp/sự kiện WebSocket tính bằng mili giây.
codex.tool.call bộ đếm tool, success Số lần gọi công cụ theo tên công cụ và thành công/thất bại.
codex.tool.call.duration_ms biểu đồ tần suất tool, success Thời lượng thực thi công cụ tính bằng mili giây theo tên công cụ và kết quả.

Để biết thêm hướng dẫn về bảo mật và quyền riêng tư liên quan đến đo từ xa, hãy xem Bảo mật.

Chỉ số

Theo mặc định, Codex định kỳ gửi một lượng nhỏ dữ liệu ẩn danh về mức sử dụng và tình trạng hoạt động cho OpenAI. Điều này giúp phát hiện khi Codex hoạt động không đúng và cho biết những tính năng cùng tùy chọn cấu hình nào đang được sử dụng, để nhóm Codex có thể tập trung vào những điều quan trọng nhất. Các chỉ số này không chứa bất kỳ thông tin nhận dạng cá nhân (PII) nào. Việc thu thập chỉ số độc lập với quá trình xuất nhật ký/dấu vết OTel.

Nếu muốn tắt hoàn toàn việc thu thập chỉ số trên ứng dụng ChatGPT dành cho máy tính, Codex CLI và tiện ích IDE của một máy, hãy đặt cờ phân tích trong cấu hình:

[analytics]
enabled = false

Mỗi chỉ số bao gồm các trường riêng cùng những trường ngữ cảnh mặc định bên dưới.

Trường ngữ cảnh mặc định (áp dụng cho mọi sự kiện/chỉ số)

  • auth_mode: swic | api | unknown.
  • model: tên mô hình được sử dụng.
  • app.version: phiên bản Codex.

Danh mục chỉ số

Mỗi chỉ số bao gồm các trường bắt buộc cùng các trường ngữ cảnh mặc định ở trên. Tên chỉ số bên dưới lược bỏ tiền tố codex.. Hầu hết tên chỉ số được tập trung trong codex-rs/otel/src/metrics/names.rs; các chỉ số dành riêng cho tính năng được phát ra bên ngoài tệp đó cũng được liệt kê tại đây. Nếu một chỉ số bao gồm trường tool, trường này phản ánh công cụ nội bộ được sử dụng (ví dụ: apply_patch hoặc shell) và không chứa lệnh shell thực tế hay bản vá mà codex đang cố áp dụng.

Môi trường chạy và truyền tải mô hình

Chỉ số Loại Trường Mô tả
api_request bộ đếm status, success Số yêu cầu API theo trạng thái HTTP và thành công/thất bại.
api_request.duration_ms biểu đồ tần suất status, success Thời lượng yêu cầu API tính bằng mili giây.
sse_event bộ đếm kind, success Số sự kiện SSE theo loại sự kiện và thành công/thất bại.
sse_event.duration_ms biểu đồ tần suất kind, success Thời lượng xử lý sự kiện SSE tính bằng mili giây.
websocket.request bộ đếm success Số yêu cầu WebSocket theo thành công/thất bại.
websocket.request.duration_ms biểu đồ tần suất success Thời lượng yêu cầu WebSocket tính bằng mili giây.
websocket.event bộ đếm kind, success Số thông điệp/sự kiện WebSocket theo loại và thành công/thất bại.
websocket.event.duration_ms biểu đồ tần suất kind, success Thời lượng xử lý thông điệp/sự kiện WebSocket tính bằng mili giây.
responses_api_overhead.duration_ms biểu đồ tần suất Thời gian xử lý bổ sung của Responses API từ phản hồi WebSocket.
responses_api_inference_time.duration_ms biểu đồ tần suất Thời gian suy luận của Responses API từ phản hồi WebSocket.
responses_api_engine_iapi_ttft.duration_ms biểu đồ tần suất Thời gian đến token đầu tiên của IAPI công cụ Responses API.
responses_api_engine_service_ttft.duration_ms biểu đồ tần suất Thời gian dịch vụ đến token đầu tiên của công cụ Responses API.
responses_api_engine_iapi_tbt.duration_ms biểu đồ tần suất Thời gian giữa các token của IAPI công cụ Responses API.
responses_api_engine_service_tbt.duration_ms biểu đồ tần suất Thời gian dịch vụ giữa các token của công cụ Responses API.
transport.fallback_to_http bộ đếm from_wire_api Số lần dự phòng từ WebSocket sang HTTP.
remote_models.fetch_update.duration_ms biểu đồ tần suất Thời gian lấy định nghĩa mô hình từ xa.
remote_models.load_cache.duration_ms biểu đồ tần suất Thời gian tải bộ nhớ đệm mô hình từ xa.
startup_prewarm.duration_ms biểu đồ tần suất status Thời lượng làm nóng trước khi khởi động theo kết quả.
startup_prewarm.age_at_first_turn_ms biểu đồ tần suất status Tuổi của dữ liệu làm nóng trước lúc khởi động khi lượt thực đầu tiên phân giải dữ liệu đó.
cloud_requirements.fetch.duration_ms biểu đồ tần suất Thời lượng tìm nạp yêu cầu đám mây do không gian làm việc quản lý.
cloud_requirements.fetch_attempt bộ đếm Xem ghi chú Số lần thử tìm nạp yêu cầu đám mây do không gian làm việc quản lý.
cloud_requirements.fetch_final bộ đếm Xem ghi chú Kết quả cuối cùng khi tìm nạp yêu cầu đám mây do không gian làm việc quản lý.
cloud_requirements.load bộ đếm trigger, outcome Kết quả tải yêu cầu đám mây do không gian làm việc quản lý.

Chỉ số cloud_requirements.fetch_attempt bao gồm các trường trigger, attempt, outcomestatus_code. Chỉ số cloud_requirements.fetch_final bao gồm các trường trigger, outcome, reason, attempt_countstatus_code.

Hoạt động của lượt và công cụ

Chỉ số Loại Trường Mô tả
turn.e2e_duration_ms biểu đồ tần suất Thời gian đầu cuối của một lượt hoàn chỉnh.
turn.ttft.duration_ms biểu đồ tần suất Thời gian đến token đầu tiên của một lượt.
turn.ttfm.duration_ms biểu đồ tần suất Thời gian đến mục đầu ra đầu tiên của mô hình trong một lượt.
turn.network_proxy bộ đếm active, tmp_mem_enabled Proxy mạng được quản lý có hoạt động trong lượt hay không.
turn.memory bộ đếm read_allowed, feature_enabled, config_use_memories, has_citations Khả năng đọc bộ nhớ và việc sử dụng trích dẫn bộ nhớ theo từng lượt.
turn.tool.call biểu đồ tần suất tmp_mem_enabled Số lần gọi công cụ trong lượt.
turn.token_usage biểu đồ tần suất token_type, tmp_mem_enabled Mức sử dụng token theo từng lượt và loại token (total, input, cached_input, output hoặc reasoning_output).
tool.call bộ đếm tool, success Số lần gọi công cụ theo tên công cụ và thành công/thất bại.
tool.call.duration_ms biểu đồ tần suất tool, success Thời lượng thực thi công cụ tính bằng mili giây theo tên công cụ và kết quả.
tool.unified_exec bộ đếm tty Số lần gọi công cụ exec hợp nhất theo chế độ TTY.
approval.requested bộ đếm tool, approved Kết quả yêu cầu phê duyệt công cụ (approved, approved_with_amendment, approved_for_session, denied, abort).
mcp.call bộ đếm Xem ghi chú Kết quả gọi công cụ MCP.
mcp.call.duration_ms biểu đồ tần suất Xem ghi chú Thời lượng gọi công cụ MCP.
mcp.tools.list.duration_ms biểu đồ tần suất cache Thời lượng liệt kê công cụ MCP, bao gồm trạng thái trúng/trượt bộ nhớ đệm.
mcp.tools.fetch_uncached.duration_ms biểu đồ tần suất Thời lượng tìm nạp công cụ MCP khi trượt bộ nhớ đệm.
mcp.tools.cache_write.duration_ms biểu đồ tần suất Thời lượng ghi bộ nhớ đệm công cụ MCP của Codex Apps.
hooks.run bộ đếm hook_name, source, status Số lần chạy hook theo tên hook, nguồn và trạng thái.
hooks.run.duration_ms biểu đồ tần suất hook_name, source, status Thời lượng chạy hook tính bằng mili giây.

Các chỉ số mcp.callmcp.call.duration_ms bao gồm status; dữ liệu phát ra từ lệnh gọi công cụ thông thường cũng bao gồm tool, cùng connector_idconnector_name khi có. Các lệnh gọi MCP của Codex Apps bị chặn có thể phát ra mcp.call chỉ với status.

Luồng, tác vụ và tính năng

Chỉ số Loại Trường Mô tả
feature.state bộ đếm feature, value Các giá trị tính năng khác mặc định (phát một hàng cho mỗi giá trị khác mặc định).
status_line bộ đếm Phiên được bắt đầu với dòng trạng thái đã cấu hình.
model_warning bộ đếm Cảnh báo được gửi đến mô hình.
thread.started bộ đếm is_git Luồng mới được tạo, có thẻ cho biết thư mục làm việc có nằm trong repo Git hay không.
conversation.turn.count bộ đếm Số lượt người dùng/trợ lý trên mỗi luồng, được ghi lại khi kết thúc luồng.
thread.fork bộ đếm source Luồng mới được tạo bằng cách phân nhánh từ một luồng hiện có.
thread.rename bộ đếm Luồng được đổi tên.
thread.side bộ đếm source Cuộc hội thoại phụ được tạo.
thread.skills.enabled_total biểu đồ tần suất Số kỹ năng được bật cho một luồng mới.
thread.skills.kept_total biểu đồ tần suất Số kỹ năng đã bật được giữ lại sau khi kết xuất lời nhắc.
thread.skills.truncated biểu đồ tần suất Việc kết xuất kỹ năng có cắt bớt danh sách kỹ năng đã bật hay không (1 hoặc 0).
task.compact bộ đếm type Số lần nén theo loại (remote hoặc local), bao gồm thủ công và tự động.
task.review bộ đếm Số lượt đánh giá được kích hoạt.
task.undo bộ đếm Số thao tác hoàn tác được kích hoạt.
task.user_shell bộ đếm Số thao tác shell của người dùng (ví dụ: ! trong TUI).
shell_snapshot bộ đếm Xem ghi chú Việc chụp ảnh nhanh shell có thành công hay không.
shell_snapshot.duration_ms biểu đồ tần suất success Thời gian chụp ảnh nhanh shell.
skill.injected bộ đếm status, skill Kết quả chèn kỹ năng theo từng kỹ năng.
plugins.startup_sync bộ đếm transport, status Số lần thử đồng bộ plugin tuyển chọn khi khởi động.
plugins.startup_sync.final bộ đếm transport, status Kết quả cuối cùng của việc đồng bộ plugin tuyển chọn khi khởi động.
multi_agent.spawn bộ đếm role Số lần khởi tạo agent theo vai trò.
multi_agent.resume bộ đếm Số lần agent tiếp tục hoạt động.
multi_agent.nickname_pool_reset bộ đếm Số lần đặt lại nhóm biệt danh agent.

Chỉ số shell_snapshot bao gồm successfailure_reason khi xảy ra lỗi.

Bộ nhớ và trạng thái cục bộ

Chỉ số Loại Trường Mô tả
memory.phase1 bộ đếm status Số tác vụ giai đoạn 1 của bộ nhớ theo trạng thái.
memory.phase1.e2e_ms biểu đồ tần suất Thời lượng đầu cuối của giai đoạn 1 bộ nhớ.
memory.phase1.output bộ đếm Số đầu ra giai đoạn 1 của bộ nhớ được ghi.
memory.phase1.token_usage biểu đồ tần suất token_type Mức sử dụng token ở giai đoạn 1 bộ nhớ theo loại token.
memory.phase2 bộ đếm status Số tác vụ giai đoạn 2 của bộ nhớ theo trạng thái.
memory.phase2.e2e_ms biểu đồ tần suất Thời lượng đầu cuối của giai đoạn 2 bộ nhớ.
memory.phase2.input bộ đếm Số đầu vào giai đoạn 2 của bộ nhớ.
memory.phase2.token_usage biểu đồ tần suất token_type Mức sử dụng token ở giai đoạn 2 bộ nhớ theo loại token.
memories.usage bộ đếm kind, tool, success Mức sử dụng bộ nhớ theo loại, công cụ và thành công/thất bại.
external_agent_config.detect bộ đếm Xem ghi chú Số cấu hình agent bên ngoài được phát hiện theo loại mục di chuyển.
external_agent_config.import bộ đếm Xem ghi chú Số cấu hình agent bên ngoài được nhập theo loại mục di chuyển.
db.backfill bộ đếm status Kết quả điền dữ liệu ngược ban đầu cho cơ sở dữ liệu trạng thái (upserted, failed).
db.backfill.duration_ms biểu đồ tần suất status Thời lượng điền dữ liệu ngược ban đầu cho cơ sở dữ liệu trạng thái.
db.error bộ đếm stage Lỗi trong các thao tác cơ sở dữ liệu trạng thái.

Các chỉ số external_agent_config.detectexternal_agent_config.import bao gồm migration_type; quá trình di chuyển kỹ năng cũng bao gồm skills_count.

Sandbox Windows

Chỉ số Loại Trường Mô tả
windows_sandbox.setup_success bộ đếm originator, mode Số lần thiết lập sandbox Windows thành công.
windows_sandbox.setup_failure bộ đếm originator, mode Số lần thiết lập sandbox Windows thất bại.
windows_sandbox.setup_duration_ms biểu đồ tần suất result, originator, mode Thời lượng thiết lập sandbox Windows.
windows_sandbox.elevated_setup_success bộ đếm Số lần thiết lập sandbox Windows nâng quyền thành công.
windows_sandbox.elevated_setup_failure bộ đếm Xem ghi chú Số lần thiết lập sandbox Windows nâng quyền thất bại.
windows_sandbox.elevated_setup_canceled bộ đếm Xem ghi chú Số lần thử thiết lập Windows nâng quyền bị hủy.
windows_sandbox.elevated_setup_duration_ms biểu đồ tần suất result Thời lượng thiết lập sandbox nâng quyền.
windows_sandbox.elevated_prompt_shown bộ đếm Số lần hiển thị lời nhắc thiết lập sandbox nâng quyền.
windows_sandbox.elevated_prompt_accept bộ đếm Số lần chấp nhận lời nhắc thiết lập sandbox nâng quyền.
windows_sandbox.elevated_prompt_use_legacy bộ đếm Người dùng chọn sandbox cũ từ lời nhắc nâng quyền.
windows_sandbox.elevated_prompt_quit bộ đếm Người dùng thoát từ lời nhắc nâng quyền.
windows_sandbox.fallback_prompt_shown bộ đếm Số lần hiển thị lời nhắc sandbox dự phòng.
windows_sandbox.fallback_retry_elevated bộ đếm Người dùng thử lại thiết lập nâng quyền từ lời nhắc dự phòng.
windows_sandbox.fallback_use_legacy bộ đếm Người dùng chọn sandbox cũ từ lời nhắc dự phòng.
windows_sandbox.fallback_prompt_quit bộ đếm Người dùng thoát từ lời nhắc dự phòng.
windows_sandbox.legacy_setup_preflight_failed bộ đếm Xem ghi chú Kiểm tra sơ bộ thiết lập sandbox Windows cũ thất bại.
windows_sandbox.setup_elevated_sandbox_command bộ đếm Lệnh thiết lập sandbox nâng quyền được gọi.
windows_sandbox.createprocessasuserw_failed bộ đếm error_code, path_kind, exe, level Các lỗi CreateProcessAsUserW trên Windows.

Các chỉ số lỗi thiết lập nâng cao bao gồm codemessage khi có thông tin chi tiết về lỗi thiết lập Windows, đồng thời có thể bao gồm originator khi được phát ra từ quy trình thiết lập dùng chung. Chỉ số windows_sandbox.legacy_setup_preflight_failed bao gồm originator khi được phát ra từ quy trình thiết lập dùng chung, nhưng lỗi kiểm tra trước của lời nhắc dự phòng có thể không bao gồm trường nào.

Các tùy chọn kiểm soát phản hồi

Theo mặc định, các ứng dụng khách cục bộ cho phép người dùng gửi phản hồi từ /feedback. Để tắt tính năng thu thập phản hồi trên ứng dụng ChatGPT dành cho máy tính, Codex CLI và tiện ích mở rộng IDE của một máy, hãy cập nhật cấu hình:

[feedback]
enabled = false

Khi bị tắt, /feedback hiển thị thông báo cho biết tính năng đã bị tắt và Codex từ chối các nội dung phản hồi được gửi.

Ẩn hoặc hiển thị các sự kiện suy luận

Nếu muốn giảm nội dung đầu ra "suy luận" gây nhiễu (ví dụ: trong nhật ký CI), bạn có thể ẩn nội dung đó:

hide_agent_reasoning = true

Nếu muốn hiển thị nội dung suy luận thô khi một mô hình phát ra nội dung đó:

show_raw_agent_reasoning = true

Chỉ bật nội dung suy luận thô nếu điều này phù hợp với quy trình làm việc của bạn. Một số mô hình/nhà cung cấp (như gpt-oss) không phát ra nội dung suy luận thô; trong trường hợp đó, cài đặt này không tạo ra hiệu ứng hiển thị nào.

Thông báo

Dùng notify để kích hoạt một chương trình bên ngoài mỗi khi Codex phát ra các sự kiện được hỗ trợ (hiện chỉ có agent-turn-complete). Tính năng này hữu ích cho thông báo bật lên trên máy tính, webhook trò chuyện, bản cập nhật CI hoặc bất kỳ cảnh báo qua kênh phụ nào mà thông báo TUI tích hợp sẵn không hỗ trợ.

notify = ["python3", "/path/to/notify.py"]

Ví dụ về notify.py (đã rút gọn) phản ứng với agent-turn-complete:

#!/usr/bin/env python3
import json, subprocess, sys

def main() -> int:
    notification = json.loads(sys.argv[1])
    if notification.get("type") != "agent-turn-complete":
        return 0
    title = f"Codex: {notification.get('last-assistant-message', 'Turn Complete!')}"
    message = " ".join(notification.get("input-messages", []))
    subprocess.check_output([
        "terminal-notifier",
        "-title", title,
        "-message", message,
        "-group", "codex-" + notification.get("thread-id", ""),
        "-activate", "com.googlecode.iterm2",
    ])
    return 0

if __name__ == "__main__":
    sys.exit(main())

Tập lệnh nhận một đối số JSON duy nhất. Các trường phổ biến bao gồm:

  • type (hiện là agent-turn-complete)
  • thread-id (mã định danh phiên)
  • turn-id (mã định danh lượt)
  • cwd (thư mục làm việc)
  • input-messages (các tin nhắn của người dùng dẫn đến lượt này)
  • last-assistant-message (văn bản trong tin nhắn gần nhất của trợ lý)

Đặt tập lệnh ở một vị trí trên đĩa và trỏ notify đến tập lệnh đó.

notify so với tui.notifications

  • notify chạy một chương trình bên ngoài (phù hợp với webhook, trình thông báo trên máy tính và hook CI).
  • tui.notifications được tích hợp sẵn trong TUI và có thể tùy chọn lọc theo loại sự kiện (ví dụ: agent-turn-completeapproval-requested).
  • tui.notification_method kiểm soát cách TUI phát thông báo đầu cuối (auto, osc9 hoặc bel).
  • tui.notification_condition kiểm soát việc thông báo TUI chỉ được kích hoạt khi đầu cuối ở trạng thái unfocused hay always.

Ở chế độ auto, Codex ưu tiên thông báo OSC 9 (một chuỗi thoát đầu cuối được một số đầu cuối diễn giải thành thông báo trên máy tính) và chuyển sang dùng BEL (\x07) nếu không thể sử dụng OSC 9.

Xem Tham chiếu cấu hình để biết chính xác các khóa.

Lưu giữ lịch sử

Theo mặc định, Codex lưu bản ghi các phiên cục bộ trong CODEX_HOME (ví dụ: ~/.codex/history.jsonl). Để tắt tính năng lưu giữ lịch sử cục bộ:

[history]
persistence = "none"

Để giới hạn kích thước tệp lịch sử, hãy đặt history.max_bytes. Khi tệp vượt quá giới hạn, Codex loại bỏ các mục cũ nhất và thu gọn tệp trong khi vẫn giữ lại các bản ghi mới nhất.

[history]
max_bytes = 104857600 # 100 MiB

Trích dẫn có thể nhấp

Nếu bạn sử dụng tiện ích tích hợp đầu cuối/trình soạn thảo có hỗ trợ tính năng này, Codex có thể hiển thị trích dẫn tệp dưới dạng liên kết có thể nhấp. Hãy cấu hình file_opener để chọn lược đồ URI mà Codex sử dụng:

file_opener = "vscode" # or cursor, windsurf, vscode-insiders, none

Ví dụ: một trích dẫn như /home/user/project/main.py:42 có thể được viết lại thành liên kết vscode://file/...:42 có thể nhấp.

Khám phá hướng dẫn của dự án

Codex đọc AGENTS.md (và các tệp liên quan), sau đó đưa một lượng giới hạn hướng dẫn của dự án vào lượt đầu tiên của phiên. Hai tùy chọn kiểm soát cách hoạt động của tính năng này:

  • project_doc_max_bytes: lượng nội dung cần đọc từ mỗi tệp AGENTS.md
  • project_doc_fallback_filenames: các tên tệp bổ sung cần thử khi thiếu AGENTS.md ở một cấp thư mục

Để xem hướng dẫn chi tiết, hãy đọc Hướng dẫn tùy chỉnh bằng AGENTS.md.

Máy tính

Các tùy chọn trong phần này chỉ áp dụng cho ứng dụng ChatGPT dành cho máy tính.

Thêm trình xử lý tệp tùy chỉnh

Trong ~/.codex/config.toml ở cấp người dùng, hãy thêm các mục bên dưới desktop.custom_file_handlers để mở tệp trong các trình soạn thảo hoặc trình khởi chạy nội bộ mà ứng dụng ChatGPT dành cho máy tính không hỗ trợ theo mặc định. Mỗi mục sẽ thêm một trình soạn thảo đích vào các menu Mở bằng của ứng dụng. Ứng dụng liệt kê đích khi command là một đường dẫn tuyệt đối hiện có hoặc có thể được phân giải từ PATH của ứng dụng.

Ví dụ sau minh họa ba cách truyền tệp cho một trình xử lý:

# Append the opened path directly after the command.
[desktop.custom_file_handlers.vscodium]
label = "VSCodium"
icon = "/Users/you/.codex/icons/vscodium.png"
command = "codium"

# Place fixed arguments before the opened path.
[desktop.custom_file_handlers.textedit]
label = "TextEdit"
icon = "/Users/you/.codex/icons/textedit.png"
command = "/usr/bin/open"
args = ["-a", "TextEdit"]

# Append one JSON argument with the path and editor context.
[desktop.custom_file_handlers.company_editor]
label = "Company Editor"
icon = "/opt/company/editor/icon.png"
command = "/opt/company/bin/editor"
input = "json_argument"

Lưu config.toml, sau đó khởi động lại ứng dụng ChatGPT dành cho máy tính.

ID của trình xử lý là phân đoạn cuối cùng trong tiêu đề bảng TOML. ID phải chứa 1–64 ký tự, bắt đầu bằng một chữ cái hoặc chữ số ASCII và các ký tự còn lại chỉ được là chữ cái ASCII, chữ số, dấu chấm, dấu gạch dưới hoặc dấu gạch nối. Ứng dụng hiển thị ID với tiền tố custom:; ví dụ: company_editor trở thành custom:company_editor. Hãy đặt ID chứa dấu chấm trong dấu ngoặc kép để TOML không diễn giải ID đó là một bảng lồng nhau. Ví dụ:

[desktop.custom_file_handlers."company.editor"]
label = "Company Editor"
icon = "/opt/company/editor/icon.png"
command = "/opt/company/bin/editor"

Mỗi trình xử lý hỗ trợ các trường sau:

Trường Bắt buộc Mô tả
label Tên hiển thị trong ứng dụng.
icon Biểu tượng ứng dụng đi kèm như apps/vscode.png, URL data:image/... base64, URI file: hoặc đường dẫn tuyệt đối đến hình ảnh cục bộ. Nguồn không được hỗ trợ sẽ dùng biểu tượng VS Code mặc định.
command Đường dẫn tệp thực thi hoặc tên lệnh để phát hiện và khởi chạy.
args Không Mảng chuỗi được chèn giữa command và dữ liệu đầu vào là tệp. Mặc định là [].
input Không Cách ứng dụng gửi dữ liệu đầu vào là tệp: path, json_argument hoặc json_stdin. Mặc định là path.
supports_ssh Không Có cung cấp trình xử lý cho các tệp trong không gian làm việc SSH hay không. Mặc định là false. Dùng json_stdin khi trình xử lý cần thông tin chi tiết về máy chủ từ xa và đường dẫn.

Giá trị input kiểm soát nội dung theo sau args:

  • path nối thêm đường dẫn làm đối số cuối cùng của lệnh.
  • json_argument nối thêm một đối tượng JSON với target, path, appPathlocation. Giá trị location là một đối tượng có các giá trị linecolumn bắt đầu từ 1, hoặc là null.
  • json_stdin ghi đối tượng JSON vào đầu vào chuẩn thay vì thêm một đối số. Đối tượng cũng bao gồm hostConfig, remoteWorkspaceRootremotePath; các trường này là null khi không áp dụng.

Ví dụ: company_editor có thể nhận đối số này khi người dùng mở một vị trí mã nguồn cụ thể:

{
  "target": "custom:company_editor",
  "path": "/repo/src/index.ts",
  "appPath": null,
  "location": { "line": 12, "column": 3 }
}

Việc chọn một trình xử lý tùy chỉnh làm trình soạn thảo ưu tiên sẽ lưu lựa chọn theo cùng cách như khi chọn trình soạn thảo tích hợp sẵn, bao gồm cả tùy chọn riêng cho từng dự án.

Tùy chọn TUI

Chạy codex mà không có lệnh con sẽ khởi chạy giao diện đầu cuối tương tác (TUI). Codex cung cấp một số cấu hình dành riêng cho TUI bên dưới [tui], bao gồm:

  • tui.notifications: bật/tắt thông báo (hoặc giới hạn ở các loại cụ thể)
  • tui.notification_method: chọn auto, osc9 hoặc bel cho thông báo đầu cuối
  • tui.notification_condition: chọn unfocused hoặc always để xác định thời điểm kích hoạt thông báo
  • tui.animations: bật/tắt hiệu ứng hoạt ảnh ASCII và hiệu ứng ánh sáng lướt
  • tui.alternate_screen: kiểm soát việc sử dụng màn hình thay thế (đặt thành never để giữ lại lịch sử cuộn của đầu cuối)
  • tui.show_tooltips: hiển thị hoặc ẩn chú giải hướng dẫn ban đầu trên màn hình chào mừng

tui.notification_method mặc định là auto. Ở chế độ auto, Codex ưu tiên thông báo OSC 9 (một chuỗi thoát đầu cuối được một số đầu cuối diễn giải thành thông báo trên máy tính) khi đầu cuối có vẻ hỗ trợ loại thông báo này, và chuyển sang dùng BEL (\x07) nếu không.

Xem Tham chiếu cấu hình để biết danh sách khóa đầy đủ.