Allow disabling the built-in `update_plan` tool independently
What variant of Codex are you using?
Codex CLI, especially embedded, automated, and MCP-driven workflows.
What feature would you like to see?
Add an independent feature flag for the built-in update_plan tool:
[features]
plan_tool = false
The flag should default to true so existing behavior remains unchanged. When disabled, update_plan should be absent from both the model-visible tool set and the registered tool handlers.
Why is this useful?
Some Codex integrations already provide planning or task tracking through an MCP server, a host application, or another external workflow. In those environments, exposing the built-in plan tool creates two competing planning surfaces and makes tool selection less predictable.
A dedicated opt-out would let users:
- use an external planning/task-management tool without competing with
update_plan; - reduce the model's tool surface in embedded or automated sessions;
- disable planning independently while retaining other built-in tools such as shell and patching.
This is narrower than disabling every built-in tool and preserves the current behavior by default.
Proposed implementation
I prepared a small implementation that:
- adds a stable, default-enabled
plan_toolfeature; - gates registration of
PlanHandler; - updates the generated config schema;
- adds targeted coverage verifying that
update_planis visible and registered by default, and absent when the flag is disabled.
Implementation references:
- Branch: https://github.com/GraduErd/codex/tree/agent/plan-tool-feature-gate
- Commit: https://github.com/GraduErd/codex/commit/c240e0562e843f502ff48d5defc7666826758980
- Compare: https://github.com/openai/codex/compare/main...GraduErd:codex:agent/plan-tool-feature-gate
I would be happy to open a PR if a maintainer considers this direction appropriate.
Related
- #6049 requests the broader ability to disable built-in tools for MCP-only execution. This request focuses on an independent, backward-compatible opt-out for the plan tool specifically.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗