codex's config.toml held nine live API keys inline under
[mcp_servers.*.env] -- deepseek, gemini, kimi, mimo, qwen, glm, cursor,
an OpenAI key and a Home Assistant token -- so it could not be tracked
as it stood. TOML env tables take literal values only, with no ${VAR}
indirection or env_file, so the keys cannot simply be named there.
Move them to ~/.codex/secrets.env (0600, ignored) and route the four
affected servers through mcp-with-secrets.sh, which sources that file
and execs the real command. Doing it in the wrapper rather than relying
on exported shell vars means it does not depend on how codex handles
environment inheritance, and works on ssh-only boxes with no keychain or
1Password agent, which is why this was preferred over a chezmoi
template.
Adds configs for claude, codex, pi, grok, kimi, kimi-code and reasonix,
and extends .chezmoiignore so credentials, session logs, local state and
.bak files stay out even if a directory is ever added whole.
Held back for still containing live keys: opencode.json (bailian), and
reasonix config.json and .env.
438 lines
13 KiB
TOML
438 lines
13 KiB
TOML
model = "gpt-5.6-sol"
|
|
model_reasoning_effort = "high"
|
|
personality = "pragmatic"
|
|
plan_mode_reasoning_effort = "xhigh"
|
|
sandbox_mode = "workspace-write"
|
|
service_tier = "priority"
|
|
|
|
|
|
notify = ["/Users/anton/.codex/computer-use/Codex Computer Use.app/Contents/SharedSupport/SkyComputerUseClient.app/Contents/MacOS/SkyComputerUseClient", "turn-ended"]
|
|
|
|
[features]
|
|
hooks = true
|
|
apps = true
|
|
multi_agent = true
|
|
prevent_idle_sleep = true
|
|
memories = true
|
|
js_repl = false
|
|
|
|
[marketplaces.openai-bundled]
|
|
last_updated = "2026-07-28T17:16:25Z"
|
|
source_type = "local"
|
|
source = "/Users/anton/.codex/.tmp/bundled-marketplaces/openai-bundled"
|
|
|
|
[marketplaces.openai-primary-runtime]
|
|
last_updated = "2026-07-16T08:15:09Z"
|
|
source_type = "local"
|
|
source = "/Users/anton/.cache/codex-runtimes/codex-primary-runtime/plugins/openai-primary-runtime"
|
|
|
|
[marketplaces.claude-plugins-official]
|
|
last_updated = "2026-08-05T22:59:06Z"
|
|
last_revision = "0ad65e5d170c501235183be69c4e4be30a5f81d8"
|
|
source_type = "git"
|
|
source = "https://github.com/anthropics/claude-plugins-official.git"
|
|
|
|
[marketplaces.openai-codex]
|
|
last_updated = "2026-07-08T07:57:58Z"
|
|
last_revision = "db52e28f4d9ded852ab3942cea316258ae4ef346"
|
|
source_type = "git"
|
|
source = "https://github.com/openai/codex-plugin-cc.git"
|
|
|
|
[mcp_servers.agent-team-wiki]
|
|
url = "https://wiki.agent-team.ru/mcp"
|
|
|
|
[mcp_servers.codex-cli]
|
|
command = "npx"
|
|
args = ["-y", "codex-mcp-server"]
|
|
|
|
[mcp_servers.excalidraw]
|
|
url = "https://excalidraw-mcp-app.vercel.app/mcp"
|
|
|
|
[mcp_servers.glm]
|
|
command = "/Users/anton/.codex/mcp-with-secrets.sh"
|
|
args = ["node", "/Users/anton/dev/glm/scripts/glm-mcp.mjs"]
|
|
startup_timeout_sec = 15.0
|
|
tool_timeout_sec = 1200.0
|
|
|
|
[mcp_servers.glm.env]
|
|
|
|
[mcp_servers.glm.tools.glm_consult]
|
|
approval_mode = "approve"
|
|
|
|
[mcp_servers.glm.tools.glm_freeform]
|
|
approval_mode = "approve"
|
|
|
|
[mcp_servers.glm.tools.glm_review]
|
|
approval_mode = "approve"
|
|
|
|
[mcp_servers.multipoly]
|
|
command = "/Users/anton/.codex/mcp-with-secrets.sh"
|
|
args = ["node", "/Users/anton/dev/multipoly/scripts/multipoly-mcp.mjs"]
|
|
startup_timeout_sec = 15.0
|
|
tool_timeout_sec = 600.0
|
|
|
|
[mcp_servers.multipoly.env]
|
|
MULTIPOLY_AGY_CLI_KIND = "agy"
|
|
MULTIPOLY_AGY_ENABLED = "1"
|
|
MULTIPOLY_AGY_TRANSPORT = "cli"
|
|
MULTIPOLY_AGY_UNSAFE = "1"
|
|
MULTIPOLY_CLAUDE_CLI_KIND = "claude"
|
|
MULTIPOLY_CLAUDE_ENABLED = "1"
|
|
MULTIPOLY_CLAUDE_MODEL = "claude-opus-4-7"
|
|
MULTIPOLY_CLAUDE_TRANSPORT = "cli"
|
|
MULTIPOLY_CODEX_CLI_KIND = "codex"
|
|
MULTIPOLY_CODEX_ENABLED = "1"
|
|
MULTIPOLY_CODEX_MODEL = "gpt-5.5"
|
|
MULTIPOLY_CODEX_TRANSPORT = "cli"
|
|
MULTIPOLY_COMPOSER_ENABLED = "1"
|
|
MULTIPOLY_DEEPSEEK_BASE_URL = "https://api.deepseek.com"
|
|
MULTIPOLY_FABLE_CLI_KIND = "claude"
|
|
MULTIPOLY_FABLE_ENABLED = "1"
|
|
MULTIPOLY_FABLE_MODEL = "claude-fable-5"
|
|
MULTIPOLY_FABLE_TRANSPORT = "cli"
|
|
MULTIPOLY_GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai"
|
|
MULTIPOLY_GEMINI_MODEL = "gemini-3.5-flash"
|
|
MULTIPOLY_GEMINI_TRANSPORT = "http"
|
|
MULTIPOLY_GLM_MAX_TOKENS_REVIEW = "8192"
|
|
MULTIPOLY_GROK_CLI_KIND = "grok"
|
|
MULTIPOLY_GROK_ENABLED = "1"
|
|
MULTIPOLY_GROK_MODEL = "grok-4.5"
|
|
MULTIPOLY_GROK_TRANSPORT = "cli"
|
|
MULTIPOLY_KIMI_BASE_URL = "https://api.kimi.com/coding"
|
|
MULTIPOLY_KIMI_MAX_TOKENS_CONSULT = "65536"
|
|
MULTIPOLY_KIMI_MODEL = "kimi-k.3.0"
|
|
MULTIPOLY_KIMI_REASONING = "kimi_toggle"
|
|
MULTIPOLY_KIMI_TRANSPORT = "anthropic"
|
|
MULTIPOLY_MIMO_BASE_URL = "https://token-plan-sgp.xiaomimimo.com/v1"
|
|
MULTIPOLY_MIMO_MAX_TOKENS_REVIEW = "8192"
|
|
MULTIPOLY_MIMO_MODEL = "mimo-v2.5-pro"
|
|
MULTIPOLY_MIMO_TRANSPORT = "http"
|
|
MULTIPOLY_MODELS = "kimi,gemini,claude,codex,agy,mimo,grok,fable"
|
|
MULTIPOLY_QWEN_BASE_URL = "https://ws-duxbs2mi0ocqxzxp.eu-central-1.maas.aliyuncs.com/compatible-mode/v1"
|
|
MULTIPOLY_QWEN_MODEL = "qwen3.7-max"
|
|
MULTIPOLY_TIMEOUT_MS = "3600000"
|
|
|
|
[mcp_servers.github]
|
|
url = "https://api.githubcopilot.com/mcp/"
|
|
bearer_token_env_var = "CODEX_GITHUB_PERSONAL_ACCESS_TOKEN"
|
|
|
|
[mcp_servers.ha-mcp]
|
|
url = "http://192.168.39.90:8086/mcp"
|
|
|
|
[mcp_servers.home-assistant]
|
|
command = "/Users/anton/.codex/mcp-with-secrets.sh"
|
|
args = ["uvx", "ha-mcp@latest"]
|
|
|
|
[mcp_servers.home-assistant.env]
|
|
HOMEASSISTANT_URL = "http://192.168.39.50"
|
|
|
|
[mcp_servers.playwright]
|
|
command = "npx"
|
|
args = ["@playwright/mcp@latest"]
|
|
|
|
[mcp_servers.playwright.tools.browser_run_code]
|
|
approval_mode = "approve"
|
|
|
|
[mcp_servers.playwright.tools.browser_tabs]
|
|
approval_mode = "approve"
|
|
|
|
[mcp_servers.node_repl]
|
|
args = []
|
|
command = "/Applications/Codex.app/Contents/Resources/cua_node/bin/node_repl"
|
|
startup_timeout_sec = 120
|
|
|
|
[mcp_servers.node_repl.env]
|
|
NODE_REPL_NATIVE_PIPE_CONNECT_TIMEOUT_MS = "1000"
|
|
NODE_REPL_NODE_MODULE_DIRS = "/Applications/Codex.app/Contents/Resources/cua_node/lib/node_modules"
|
|
NODE_REPL_NODE_PATH = "/Applications/Codex.app/Contents/Resources/cua_node/bin/node"
|
|
NODE_REPL_TRUSTED_CODE_PATHS = "/Users/anton/.codex"
|
|
CODEX_HOME = "/Users/anton/.codex"
|
|
NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S = "583bf903a6cfb9b00a01e1583381ce921c71d7585085c6fa6b805baa0f60230b,6d25aa7656feac858f3a3bdaea5bcbab0dbfd426c9de8e6931ce90c399ee8e4f"
|
|
BROWSER_USE_AVAILABLE_BACKENDS = "chrome,iab"
|
|
NODE_REPL_INSTRUCTIONS_USE_CASE_BROWSER = "Control the in-app browser in conjunction with the Browser Plugin."
|
|
NODE_REPL_INSTRUCTIONS_USE_CASE_CHROME = "Control the Chrome browser in conjunction with the Chrome Plugin. Prefer this method of controlling Chrome over alternatives (such as Computer Use) unless the user explicitly mentions an alternative."
|
|
NODE_REPL_INSTRUCTIONS_USE_CASE_COMPUTER_USE = "Control desktop apps on macOS through Computer Use."
|
|
BROWSER_USE_CODEX_APP_BUILD_FLAVOR = "prod"
|
|
BROWSER_USE_CODEX_APP_VERSION = "26.715.52143"
|
|
SKY_CUA_SERVICE_PATH = "/Users/anton/.codex/plugins/cache/openai-bundled/computer-use/1.0.1000451/Codex Computer Use.app"
|
|
CODEX_CLI_PATH = "/Applications/Codex.app/Contents/Resources/codex"
|
|
|
|
[mcp_servers.hallucination-detector]
|
|
command = "/Users/anton/.codex/mcp-with-secrets.sh"
|
|
|
|
args = ["hallucination-detector-mcp"]
|
|
[mcp_servers.hallucination-detector.env]
|
|
|
|
[mcp_servers.flint]
|
|
command = "npx"
|
|
args = ["-y", "flint-chart-mcp"]
|
|
|
|
[mcp_servers.computer-use]
|
|
command = "./Codex Computer Use.app/Contents/SharedSupport/SkyComputerUseClient.app/Contents/MacOS/SkyComputerUseClient"
|
|
args = ["mcp"]
|
|
cwd = "."
|
|
enabled = false
|
|
|
|
[mcp_servers.openaiDeveloperDocs]
|
|
url = "https://developers.openai.com/mcp"
|
|
|
|
[notice]
|
|
hide_rate_limit_model_nudge = true
|
|
|
|
[notice.model_migrations]
|
|
"gpt-5.2-codex" = "gpt-5.4"
|
|
|
|
[plugins."canva@openai-curated"]
|
|
enabled = true
|
|
|
|
[plugins."documents@openai-primary-runtime"]
|
|
enabled = true
|
|
|
|
[plugins."github@openai-curated"]
|
|
enabled = true
|
|
|
|
[plugins."presentations@openai-primary-runtime"]
|
|
enabled = true
|
|
|
|
[plugins."spreadsheets@openai-primary-runtime"]
|
|
enabled = true
|
|
|
|
[plugins."frontend-design@claude-plugins-official"]
|
|
enabled = true
|
|
|
|
[plugins."github@claude-plugins-official"]
|
|
enabled = true
|
|
|
|
[plugins."playwright@claude-plugins-official"]
|
|
enabled = true
|
|
|
|
[plugins."superpowers@claude-plugins-official"]
|
|
enabled = true
|
|
|
|
[plugins."codex@openai-codex"]
|
|
enabled = true
|
|
|
|
[plugins."pdf@openai-primary-runtime"]
|
|
enabled = true
|
|
|
|
[plugins."clangd-lsp@claude-plugins-official"]
|
|
enabled = true
|
|
|
|
[plugins."rust-analyzer-lsp@claude-plugins-official"]
|
|
enabled = true
|
|
|
|
[plugins."template-creator@openai-primary-runtime"]
|
|
enabled = true
|
|
|
|
[plugins."computer-use@openai-bundled"]
|
|
enabled = true
|
|
|
|
[plugins."chrome@openai-bundled"]
|
|
enabled = true
|
|
|
|
[plugins."visualize@openai-bundled"]
|
|
enabled = true
|
|
|
|
[plugins."sites@openai-bundled"]
|
|
enabled = true
|
|
|
|
[plugins."browser@openai-bundled"]
|
|
enabled = true
|
|
|
|
[projects."/"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/.local/share/chezmoi"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/aictrl"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/aictrl-upstreamm"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/claude-sync"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/codex-switcher"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/ha-assistant"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/kitty"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/metaai"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/moneystat"]
|
|
trust_level = "untrusted"
|
|
|
|
[projects."/Users/anton/dev/mosh"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/summarizer"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/translate-podcast"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/vless"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/prj/aictrl"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/prj/papers"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/prj/tagir-talk"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/r7-project"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/glm"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/mikrotik"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/page-summarizer"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/ipranges"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/multipoly"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/anton/dev/librestat"]
|
|
trust_level = "trusted"
|
|
|
|
[sandbox_workspace_write]
|
|
network_access = true
|
|
|
|
[tui]
|
|
status_line = [
|
|
"model-with-reasoning",
|
|
"context-remaining",
|
|
"current-dir",
|
|
"model-name",
|
|
"project-root",
|
|
"git-branch",
|
|
"context-used",
|
|
"five-hour-limit",
|
|
]
|
|
|
|
[tui.model_availability_nux]
|
|
"gpt-5.5" = 4
|
|
"gpt-5.6-sol" = 4
|
|
|
|
[memories]
|
|
generate_memories = true
|
|
use_memories = true
|
|
|
|
[hooks.state]
|
|
|
|
[hooks.state."/Users/anton/.codex/hooks.json:pre_tool_use:0:0"]
|
|
enabled = true
|
|
trusted_hash = "sha256:b61eb845f14a50e8e24c5435f84cb7b62cea9549c0acebe0c037a2ad94260f02"
|
|
|
|
[hooks.state."codex@openai-codex:hooks/hooks.json:session_start:0:0"]
|
|
trusted_hash = "sha256:e6b9df143de11443eb576c38874cf6e0c48358f948170948fdf630f1c047c098"
|
|
|
|
[hooks.state."codex@openai-codex:hooks/hooks.json:stop:0:0"]
|
|
trusted_hash = "sha256:3dfaa7e4f022570b260b8a8cf4ac7585c986175256b887a4723fac4f358a482f"
|
|
|
|
[hooks.state."superpowers@claude-plugins-official:hooks/hooks.json:session_start:0:0"]
|
|
enabled = false
|
|
trusted_hash = "sha256:62acbaff2b2f55f41971e21a164990aaa53c96919baa0a5eae2eb5db73b9e6e6"
|
|
|
|
[hooks.state."/Users/anton/.codex/hooks.json:pre_tool_use:1:0"]
|
|
trusted_hash = "sha256:bac831afc7106356964ac55df1e35367ef956e914a282cb645284ad23e648c57"
|
|
|
|
[hooks.state."/Users/anton/.codex/hooks.json:post_tool_use:0:0"]
|
|
trusted_hash = "sha256:f8b3aaf328b64e79eb5f0759d6bf2f4ac1136c24cf67a8887bb92f2bb63c26a4"
|
|
|
|
[hooks.state."/Users/anton/.codex/hooks.json:session_start:0:0"]
|
|
trusted_hash = "sha256:07a21ec47290f101a3b4e457df0b2a81ff7e5080f5a40e681b8514b8317f2214"
|
|
|
|
[hooks.state."/Users/anton/.codex/hooks.json:user_prompt_submit:0:0"]
|
|
trusted_hash = "sha256:a7bc3022efbd14a0b526e36d875aeb601cf0b0ed736a6b6d539ecaeb242194d8"
|
|
|
|
[hooks.state."/Users/anton/.codex/hooks.json:stop:0:0"]
|
|
trusted_hash = "sha256:a654fceae87e9d7f8d679bdd93eb083ab200c5d91bc699d71b5ef7b5a3c71f47"
|
|
|
|
[hooks.state."superpowers@claude-plugins-official:hooks/hooks-codex.json:session_start:0:0"]
|
|
enabled = false
|
|
trusted_hash = "sha256:687e7af87f0cb59b1bcc71d368e097304b45d84999c90dc97358a22811691a3f"
|
|
|
|
[hooks.state."/Users/anton/.codex/hooks.json:session_start:1:0"]
|
|
trusted_hash = "sha256:0094ae0b175bc5ea2874124bf4140ab0e2c00c8b6ea37980ede20d1e13418b19"
|
|
|
|
[hooks.state."codex@openai-codex:hooks/hooks.json:session_end:0:0"]
|
|
trusted_hash = "sha256:bc55a03ac0094c5deb4af95c405b75b34735f318b3d9bd64a2f9902973861606"
|
|
|
|
[desktop]
|
|
appearanceTheme = "system"
|
|
appearanceLightCodeThemeId = "codex"
|
|
appearanceDarkCodeThemeId = "gruvbox"
|
|
sansFontSize = 15
|
|
codeFontSize = 14
|
|
usePointerCursors = false
|
|
followUpQueueMode = "steer"
|
|
preventSleepWhileRunning = false
|
|
keepRemoteControlAwakeWhilePluggedIn = true
|
|
conversationDetailMode = "STEPS_COMMANDS"
|
|
mac-menu-bar-enabled = false
|
|
dock-icon-preference = "codex-system"
|
|
|
|
[desktop.appearanceLightChromeTheme]
|
|
accent = "#0169cc"
|
|
contrast = 45
|
|
ink = "#0d0d0d"
|
|
opaqueWindows = true
|
|
surface = "#ffffff"
|
|
|
|
[desktop.appearanceLightChromeTheme.fonts]
|
|
|
|
[desktop.appearanceLightChromeTheme.semanticColors]
|
|
diffAdded = "#00a240"
|
|
diffRemoved = "#e02e2a"
|
|
skill = "#751ed9"
|
|
|
|
[desktop.appearanceDarkChromeTheme]
|
|
accent = "#458588"
|
|
contrast = 60
|
|
ink = "#ebdbb2"
|
|
opaqueWindows = false
|
|
surface = "#282828"
|
|
|
|
[desktop.appearanceDarkChromeTheme.fonts]
|
|
|
|
[desktop.appearanceDarkChromeTheme.semanticColors]
|
|
diffAdded = "#ebdbb2"
|
|
diffRemoved = "#cc241d"
|
|
skill = "#b16286"
|
|
|
|
[desktop.open-in-target-preferences]
|
|
global = "sublimeText"
|
|
|
|
[[skills.config]]
|
|
path = "/Users/anton/.codex/plugins/cache/claude-plugins-official/superpowers/6.0.3/skills/using-superpowers/SKILL.md"
|
|
enabled = false
|
|
|
|
[[skills.config]]
|
|
path = "/Users/anton/.codex/plugins/cache/claude-plugins-official/superpowers/6.0.3/skills/brainstorming/SKILL.md"
|
|
enabled = false
|
|
|
|
[shell_environment_policy.set]
|
|
BROWSER_USE_AVAILABLE_BACKENDS = "chrome,iab"
|
|
NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S = "583bf903a6cfb9b00a01e1583381ce921c71d7585085c6fa6b805baa0f60230b,6d25aa7656feac858f3a3bdaea5bcbab0dbfd426c9de8e6931ce90c399ee8e4f"
|
|
NODE_REPL_TRUSTED_CODE_PATHS = "/Users/anton/.codex"
|