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/--configkhi 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ànhhistory.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_url và otel. 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
và ~/.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 và [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/ và 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, ollama và lmstudio.
Đị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 = trueThiế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 = 300000Lệ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 prefixSuy 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 sizemodel_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ể ghi và Truy 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ình và Cấ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 exclude và include_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 enabledChọ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ênresponse.completed)codex.websocket_requestvàcodex.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, model và app.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 = falseMỗ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, outcome và status_code. Chỉ số cloud_requirements.fetch_final bao gồm các trường trigger, outcome, reason, attempt_count và status_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.call và mcp.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_id và connector_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 success và failure_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.detect và external_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 code và message 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 = falseKhi 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 = trueNế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 = trueChỉ 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
notifychạ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-completevàapproval-requested).tui.notification_methodkiểm soát cách TUI phát thông báo đầu cuối (auto,osc9hoặcbel).tui.notification_conditionkiểm soát việc thông báo TUI chỉ được kích hoạt khi đầu cuối ở trạng tháiunfocusedhayalways.
Ở 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 MiBTrí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, noneVí 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ệpAGENTS.mdproject_doc_fallback_filenames: các tên tệp bổ sung cần thử khi thiếuAGENTS.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 |
Có | Tên hiển thị trong ứng dụng. |
icon |
Có | 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 |
Có | Đườ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:
pathnối thêm đường dẫn làm đối số cuối cùng của lệnh.json_argumentnối thêm một đối tượng JSON vớitarget,path,appPathvàlocation. Giá trịlocationlà một đối tượng có các giá trịlinevàcolumnbắt đầu từ 1, hoặc lànull.json_stdinghi đố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ồmhostConfig,remoteWorkspaceRootvàremotePath; các trường này lànullkhi 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ọnauto,osc9hoặcbelcho thông báo đầu cuốitui.notification_condition: chọnunfocusedhoặcalwaysđể xác định thời điểm kích hoạt thông báotui.animations: bật/tắt hiệu ứng hoạt ảnh ASCII và hiệu ứng ánh sáng lướttui.alternate_screen: kiểm soát việc sử dụng màn hình thay thế (đặt thànhneverđể 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 đủ.