Cấu hình nâng cao
Cấu hình nâng cao
Các tùy chọn cấu hình nâng cao hơn cho ứng dụng khách Codex cục bộ
Sử dụng các tùy chọn này khi bạn cần kiểm soát nhiều hơn đối với nhà cung cấp, chính sách và các tích hợp. Để bắt đầu nhanh, hãy xem Cấu hình cơ bản.
Để tìm hiểu thông tin nền tảng 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. Để xem 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.6-sol"
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à bên dưới
cấu hình dự án và CLI, tệp này chỉ cần chứa những 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 giá trị 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 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 khi có sẵn (ví dụ:
--model). - Sử dụng
-c/--configkhi bạn 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 để thiết lập các giá trị lồng nhau (ví dụ:
mcp_servers.context7.enabled=false). - 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 nháy để shell không tách giá trị tại các khoảng trắng. - 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 thường gặp 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 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 bật tính năng lưu giữ lịch sử)- 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 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 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 khả năng lưu trú dữ liệu, hãy thiết lập 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ở của 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 bên 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 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 tách biệt và tiếp tục được tải.
Các đường dẫn tương đối bên 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 cách 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à in 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 thiết lập
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 hook vòng đời từ các tệp hooks.json hoặc các bảng
[hooks] nội tuyến trong những tệp config.toml nằm cạnh các 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 vẫn độc lập với mức độ 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à đưa ra 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ò tác nhân ([agents] trong config.toml)
Để tìm hiểu 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 lên từ thư mục làm việc cho đến khi đến 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 thiết lập 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"]Thiết lập 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ột mô hình (URL cơ sở, API truyền tải, 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 dành riêng cho nhà cung cấp tích hợp sẵn: openai, ollama và lmstudio.
Định nghĩa thêm nhà cung cấp 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 mặc định là false đối với nhà cung cấp tùy chỉnh. Tính năng tìm kiếm trên web độc lập
đang được phát triển và mặc định bị tắt. Việc đặt khả năng của nhà cung cấp thành true
khô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 rỗng là lỗi và chủ động làm mới tại refresh_interval_ms; hãy thiết lập 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 tích hợp sẵn nhà cung cấp mô hình amazon-bedrock. Hãy đặt trực tiếp nhà cung cấp này làm
model_provider; không giống nhà cung cấp tùy chỉnh, nhà cung cấp tích hợp sẵn này chỉ hỗ trợ
các giá trị ghi đè lồng nhau cho hồ sơ và khu vực AWS.
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. Hãy đặt
region thành khu vực Bedrock được hỗ trợ sẽ xử lý 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à phạm vi tính năng khả dụ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 thiết lập mục nào,
CLI tương tác sẽ yêu cầu bạn chọn; codex exec thoát với 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ở của 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.
Tổ chức API sử dụng khả năng lưu trú dữ liệu
Các dự án được tạo với khả 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. Đối với không gian làm việc ChatGPT có khả năng lưu trú dữ liệu, bạn không cần nhà cung cấp tùy chỉnh; Codex tuân thủ thiết lập lưu trú của không gian làm việc khi bạn đăng nhập bằng ChatGPT.
model_provider = "openaidr"
[model_providers.openaidr]
name = "OpenAI Data Residency"
base_url = "https://us.api.openai.com/v1" # Replace 'us' with domain prefixKhả năng 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 sizemodel_verbosity chỉ áp dụng cho các nhà cung cấp sử dụng Responses API. Nhà cung cấp Chat Completions sẽ bỏ qua thiết lập này.
Chính sách phê duyệt và chế độ môi trường cô lập
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 độ môi trường cô lập (ả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 môi trường cô lập và phê duyệt thường dùng, Đường dẫn được bảo vệ trong thư mục gốc có thể ghi và Quyền truy cập mạng.
Codex và ChatGPT Work không còn hỗ trợ approval_policy = "untrusted". Xem
Chuyển đổi từ chính sách phê duyệt untrusted đã ngừng hỗ trợ
để tìm hiểu các thiết lập được hỗ trợ và cơ chế phê duyệt chặt chẽ hơn dựa trên dự án.
Để tìm hiểu các hồ sơ quyền beta 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 giữ phê duyệt tương tác thông thường cho một số trường hợp nhưng muốn các 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 bị từ chối theo hướng an toàn.
Thiết lập approvals_reviewer = "auto_review" để chuyển các yêu cầu phê duyệt tương tác đủ điều kiện
qua quy trình đánh giá tự động. Thao tác này thay đổi người đánh giá chứ không thay đổi ranh giới
môi trường cô lập.
Sử dụng [auto_review].policy cho hướng dẫn chính sách của bên đánh giá cục bộ. guardian_policy_config
được quản lý sẽ được ưu tiên.
approval_policy = "on-request" # Other options: 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 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 đầy đủ cho hệ thống tệp và mạng, 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 môi trường cô lập (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 hợp đã được rút 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ẫu bao gồm. Mẫu bao gồm không khôi phục các biến
đã bị loại trừ. Các khóa bộ lọc được hợp nhất mà không phân biệt chữ hoa chữ thường giữa
các lớp cấu hình.
ignore_default_excludes mặc định là true, vì vậy Codex không tự động
loại bỏ tên biến chứa KEY, SECRET hoặc TOKEN. Đặt thành false
để áp dụng các loại trừ tự động đó trước khi chạy bộ lọc tường minh của bạn.
Codex áp dụng các loại trừ tự động trước, sau đó là cá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 bước loại trừ, 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 các
cấu hình hiện có. Không kết hợp bất kỳ mảng nào trong số này 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
Hãy 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 mặc định bị tắt; 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 sự kiện nhưng không gửi dữ liệu nào. Các 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 trò chuyện, mô hình, thiết lập môi trường cô lập/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 các sự kiện nhật ký có cấu trúc cho các 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 môi trường cô lập/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/bị 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)
Số liệu OTel được phát ra
Khi quy trình số liệu OTel được bật, Codex phát 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 số liệu 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.
| Số liệu | 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 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.
Số liệu
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 đến OpenAI. Việc này giúp phát hiện khi Codex hoạt động không chính xác 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 số liệu 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 số liệu độc lập với hoạt động 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 số liệu 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 thiết lập cờ phân tích trong cấu hình:
[analytics]
enabled = falseMỗi số liệu bao gồm các trường riêng cùng các 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/số liệu)
auth_mode:swic|api|unknown.model: tên của mô hình được sử dụng.app.version: phiên bản Codex.
Danh mục số liệu
Mỗi số liệu 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 số liệu bên dưới lược bỏ tiền tố codex..
Phần lớn tên số liệu được tập trung trong codex-rs/otel/src/metrics/names.rs; các số liệu dành riêng cho tính năng được phát ra bên ngoài tệp đó cũng được đưa vào đây.
Nếu một số liệu 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ế hoặc bản vá mà codex đang cố áp dụng.
Môi trường chạy và phương thức truyền tải mô hình
| Số liệu | 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 hao phí 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 bộ máy 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 bộ máy 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 bộ máy 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 bộ máy Responses API. | |
transport.fallback_to_http |
bộ đếm | from_wire_api |
Số lần chuyển dự phòng từ WebSocket sang HTTP. |
remote_models.fetch_update.duration_ms |
biểu đồ tần suất | Thời gian tải đị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 khi 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 lưu ý | 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 lưu ý | Kết quả cuối cùng của việc 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ý. |
Số liệu cloud_requirements.fetch_attempt bao gồm các trường trigger, attempt, outcome và status_code. Số liệu 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ụ
| Số liệu | Loại | Trường | Mô tả |
|---|---|---|---|
turn.e2e_duration_ms |
biểu đồ tần suất | Thời gian từ đầu đến 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 |
Cho biết 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 |
Mức độ sẵn sàng của thao tác đọ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ụ thực thi 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 lưu ý | Kết quả gọi công cụ MCP. |
mcp.call.duration_ms |
biểu đồ tần suất | Xem lưu ý | 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, nguồn và trạng thái của hook. |
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 số liệu mcp.call và mcp.call.duration_ms bao gồm status; các lần phát sự kiện 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 mcp.call chỉ với status.
Luồng, tác vụ và tính năng
| Số liệu | Loại | Trường | Mô tả |
|---|---|---|---|
feature.state |
bộ đếm | feature, value |
Giá trị tính năng khác với mặc định (phát một hàng cho mỗi giá trị không mặc định). |
status_line |
bộ đếm | Phiên 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, gắn thẻ theo việc 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 vào cuối luồng. | |
thread.fork |
bộ đếm | source |
Luồng mới được tạo bằng cách phân nhánh một luồng hiện có. |
thread.rename |
bộ đếm | Luồng được đổi tên. | |
thread.side |
bộ đếm | source |
Cuộc trò chuyện 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 | Cho biết quá trình 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 lưu ý | Cho biết 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 |
Các lần thử đồng bộ khi khởi động của plugin tuyển chọn. |
plugins.startup_sync.final |
bộ đếm | transport, status |
Kết quả cuối cùng của đồng bộ khi khởi động plugin tuyển chọn. |
multi_agent.spawn |
bộ đếm | role |
Số lần tạo tác nhân theo vai trò. |
multi_agent.resume |
bộ đếm | Số lần tiếp tục tác nhân. | |
multi_agent.nickname_pool_reset |
bộ đếm | Số lần đặt lại nhóm biệt danh tác nhân. |
Số liệu shell_snapshot bao gồm success và, khi xảy ra lỗi, failure_reason.
Bộ nhớ và trạng thái cục bộ
| Số liệu | Loại | Trường | Mô tả |
|---|---|---|---|
memory.phase1 |
bộ đếm | status |
Số công việc giai đoạn bộ nhớ 1 theo trạng thái. |
memory.phase1.e2e_ms |
biểu đồ tần suất | Thời lượng từ đầu đến cuối của giai đoạn bộ nhớ 1. | |
memory.phase1.output |
bộ đếm | Số đầu ra của giai đoạn bộ nhớ 1 được ghi. | |
memory.phase1.token_usage |
biểu đồ tần suất | token_type |
Mức sử dụng token của giai đoạn bộ nhớ 1 theo loại token. |
memory.phase2 |
bộ đếm | status |
Số công việc giai đoạn bộ nhớ 2 theo trạng thái. |
memory.phase2.e2e_ms |
biểu đồ tần suất | Thời lượng từ đầu đến cuối của giai đoạn bộ nhớ 2. | |
memory.phase2.input |
bộ đếm | Số đầu vào của giai đoạn bộ nhớ 2. | |
memory.phase2.token_usage |
biểu đồ tần suất | token_type |
Mức sử dụng token của giai đoạn bộ nhớ 2 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 lưu ý | Phát hiện cấu hình tác nhân bên ngoài theo loại mục di chuyển. |
external_agent_config.import |
bộ đếm | Xem lưu ý | Nhập cấu hình tác nhân bên ngoài theo loại mục di chuyển. |
db.backfill |
bộ đếm | status |
Kết quả điền bù DB trạng thái ban đầu (upserted, failed). |
db.backfill.duration_ms |
biểu đồ tần suất | status |
Thời lượng điền bù DB trạng thái ban đầu. |
db.error |
bộ đếm | stage |
Lỗi trong các thao tác DB trạng thái. |
Các số liệu external_agent_config.detect và external_agent_config.import bao gồm migration_type; hoạt động di chuyển kỹ năng cũng bao gồm skills_count.
Môi trường cô lập Windows
| Số liệu | Loại | Trường | Mô tả |
|---|---|---|---|
windows_sandbox.setup_success |
bộ đếm | originator, mode |
Số lần thiết lập môi trường cô lập Windows thành công. |
windows_sandbox.setup_failure |
bộ đếm | originator, mode |
Số lần thiết lập môi trường cô lập 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 môi trường cô lập Windows. |
windows_sandbox.elevated_setup_success |
bộ đếm | Số lần thiết lập môi trường cô lập Windows nâng cao thành công. | |
windows_sandbox.elevated_setup_failure |
bộ đếm | Xem lưu ý | Số lần thiết lập môi trường cô lập Windows nâng cao thất bại. |
windows_sandbox.elevated_setup_canceled |
bộ đếm | Xem lưu ý | Số lần thử thiết lập môi trường cô lập Windows nâng cao bị hủy. |
windows_sandbox.elevated_setup_duration_ms |
biểu đồ tần suất | result |
Thời lượng thiết lập môi trường cô lập Windows nâng cao. |
windows_sandbox.elevated_prompt_shown |
bộ đếm | Lời nhắc thiết lập môi trường cô lập nâng cao được hiển thị. | |
windows_sandbox.elevated_prompt_accept |
bộ đếm | Lời nhắc thiết lập môi trường cô lập nâng cao được chấp nhận. | |
windows_sandbox.elevated_prompt_use_legacy |
bộ đếm | Người dùng chọn môi trường cô lập cũ từ lời nhắc nâng cao. | |
windows_sandbox.elevated_prompt_quit |
bộ đếm | Người dùng thoát từ lời nhắc nâng cao. | |
windows_sandbox.fallback_prompt_shown |
bộ đếm | Lời nhắc môi trường cô lập dự phòng được hiển thị. | |
windows_sandbox.fallback_retry_elevated |
bộ đếm | Người dùng thử lại thiết lập nâng cao từ lời nhắc dự phòng. | |
windows_sandbox.fallback_use_legacy |
bộ đếm | Người dùng chọn môi trường cô lập 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 lưu ý | Lỗi kiểm tra sơ bộ khi thiết lập môi trường cô lập Windows cũ. |
windows_sandbox.setup_elevated_sandbox_command |
bộ đếm | Lệnh thiết lập môi trường cô lập nâng cao được gọi. | |
windows_sandbox.createprocessasuserw_failed |
bộ đếm | error_code, path_kind, exe, level |
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 các lỗi kiểm tra sơ bộ 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 sẽ hiển thị thông báo cho biết tính năng đã bị tắt và Codex sẽ 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 đầu ra "suy luận" gây nhiễu (ví dụ: trong nhật ký CI), bạn có thể ẩn đầu ra đó:
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 này:
show_raw_agent_reasoning = trueChỉ bật nội dung suy luận thô nếu nội dung đó 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 (chẳng hạn 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 thay đổi nào có thể thấy được.
Thông báo
Sử dụng notify để kích hoạt một chương trình bên ngoài mỗi khi Codex phát ra 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, 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 tích hợp của TUI 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 thường gặp 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 rồi trỏ notify đến đó.
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 vào TUI và có thể 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 trong terminal (auto,osc9hoặcbel).tui.notification_conditionkiểm soát việc thông báo TUI chỉ được kích hoạt khi terminal ở trạng tháiunfocusedhayalways.
Trong chế độ auto, Codex ưu tiên thông báo OSC 9 (một chuỗi thoát terminal mà một số terminal diễn giải là thông báo trên máy tính) và nếu không dùng được thì chuyển sang BEL (\x07).
Xem Tài liệu tham khảo về 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 chép lại 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 sẽ loại bỏ các mục cũ nhất và thu gọn tệp trong khi vẫn giữ lại những bản ghi mới nhất.
[history]
max_bytes = 104857600 # 100 MiBTrích dẫn có thể nhấp
Nếu sử dụng một tích hợp terminal/trình soạn thảo có hỗ trợ tính năng này, Codex có thể hiển thị các 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) rồi đư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 sau 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 không tìm thấyAGENTS.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 những 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 sẽ 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 một tệp cho 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 có 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/... dạng base64, URI file: hoặc đường dẫn tuyệt đối đến ảnh cục bộ. Nguồn không được hỗ trợ sẽ 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à đầu vào tệp. Mặc định là []. |
input |
Không | Cách ứng dụng gửi đầu vào 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. Sử dụng json_stdin khi trình xử lý cần thông tin về máy chủ và đường dẫn từ xa. |
Giá trị input kiểm soát nội dung theo sau args:
pathnối đường dẫn vào làm đối số cuối cùng của lệnh.json_argumentnối thêm một đối tượng JSON cótarget,path,appPathvàlocation. Giá trịlocationlà một đối tượng có các giá trịlinevàcolumnđược đánh số 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 này 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í cụ thể trong mã nguồn:
{
"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, bao gồm cả tùy chọn riêng cho từng dự án.
Các tùy chọn TUI
Chạy codex mà không có lệnh con sẽ khởi chạy giao diện người dùng terminal tương tác (TUI). Codex cung cấp một số cấu hình dành riêng cho TUI trong [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 terminaltui.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 hoạt ảnh ASCII và hiệu ứng lấp lánhtui.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 terminal)tui.show_tooltips: hiển thị hoặc ẩn chú giải công cụ hướng dẫn trên màn hình chào mừng
tui.notification_method mặc định là auto. Trong chế độ auto, Codex ưu tiên thông báo OSC 9 (một chuỗi thoát terminal mà một số terminal diễn giải là thông báo trên máy tính) khi terminal có vẻ hỗ trợ và nếu không thì chuyển sang BEL (\x07).
Xem Tài liệu tham khảo về cấu hình để biết danh sách khóa đầy đủ.