Feature flags can explain why one Codex installation exposes a tool, permission flow, or experimental behavior that another installation does not. The feature list is a local read-only check that shows which flags the installed CLI knows and the effective state for the current invocation.
The codex features list command prints a table with the feature key, maturity stage, and effective boolean value. The value is resolved after defaults and configuration layers are applied, so capture this table before comparing machines or editing ~/.codex/config.toml.
Maturity labels are part of the signal. stable flags are the safest to rely on, experimental flags can change, under development flags should not be used for normal work, and removed or deprecated rows may remain visible while older config keys are phased out.
Related: How to check Codex CLI version
Steps to list Codex feature flags:
- List the feature flags known to the installed Codex CLI.
$ codex features list apply_patch_freeform removed false apply_patch_streaming_events under development false apps stable true apps_mcp_path_override under development false artifact under development false ##### snipped ##### workspace_dependencies stable true workspace_owner_usage_nudge removed false
The columns are feature key, maturity stage, and effective true or false state.
- Check the feature subcommands before changing feature state.
$ codex features --help Inspect feature flags Usage: codex features [OPTIONS] <COMMAND> Commands: list List known features with their stage and effective state enable Enable a feature in config.toml disable Disable a feature in config.toml help Print this message or the help of the given subcommand(s) Options: -c, --config <key=value> Override a configuration value that would otherwise be loaded from `~/.codex/config.toml`. ##### snipped #####codex features enable and codex features disable write to the active config.toml file. Use codex features list when collecting read-only diagnostic state.
- Run a one-run disable override when the table needs to show a temporary flag change.
$ codex --disable shell_snapshot features list ##### snipped ##### shell_snapshot stable false shell_tool stable true ##### snipped #####
--enable and --disable on the same invocation translate to temporary features.<name>=true or features.<name>=false values for that command process.
- Re-run the plain list after a temporary override to confirm the saved feature state is unchanged.
$ codex features list ##### snipped ##### shell_snapshot stable true shell_tool stable true ##### snipped #####
- Save the complete feature table for a ticket or handoff.
$ codex features list > codex-feature-flags.txt
The saved file contains the full, unfiltered table from the current Codex invocation.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.