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
$ 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.
$ 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.
$ 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.
$ codex features list ##### snipped ##### shell_snapshot stable true shell_tool stable true ##### snipped #####
$ codex features list > codex-feature-flags.txt
The saved file contains the full, unfiltered table from the current Codex invocation.