Allow disabling the built-in `update_plan` tool independently

Open 💬 1 comment Opened Jul 17, 2026 by GraduErd

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_tool feature;
  • gates registration of PlanHandler;
  • updates the generated config schema;
  • adds targeted coverage verifying that update_plan is visible and registered by default, and absent when the flag is disabled.

Implementation references:

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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗