Allow disabling the built-in `update_plan` tool independently
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 48/100
Research direction
Review the referenced branch and commit first, then trace PlanHandler registration and the generated config schema. Run or extend the targeted coverage described in the issue to confirm update_plan is present by default and absent when plan_tool is disabled, both from the model-visible tool set and registered handlers.
Written by the indexing model from the issue text.
Description
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.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·