Allow disabling the built-in `update_plan` tool independently

Open
#33,890 2 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
rust
Domain
cli, tooling

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

CLI config enhancement plan
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.
Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.