Codex questions
When the hook finds something worth your call, Codex asks you about it in a form, one finding at a time. Pick an answer, pick Other to write your own, or pick Leave Unsettled to come back to it later.
The form comes from tern_ask_user, a small MCP server that tern hook install registers in ~/.codex/config.toml:
[mcp_servers.tern]
command = "/path/to/tern"
args = ["mcp", "serve-ask"]
default_tools_approval_mode = "approve"default_tools_approval_mode = "approve" stops Codex asking permission before every question. tern hook uninstall removes the table.
When Codex blocks the questions
Some Codex approval settings close forms before you see them:
approval_policy = "never"inconfig.toml, or-a never/--ask-for-approval neveron the command line.- Full access in the Codex desktop app’s per-task permission picker. It overrides
config.toml.
When that happens, Codex lists what Tern found as a short bulleted summary in the chat. It settles nothing, and the findings come back on a later run.
Allowing questions without other prompts
If you run Codex with approvals off, you can still allow Tern’s questions. A granular approval policy lets MCP forms through and keeps the other prompts off:
approval_policy = { granular = { sandbox_approval = false, rules = false, skill_approval = false, request_permissions = false, mcp_elicitations = true } }Or use the default approval policy (on-request), which shows forms as usual.
Non-interactive runs
codex exec has no form UI. Tern doesn’t ask there and leaves the findings for a later interactive session.
