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.

Steps to list Codex feature flags:

  1. 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.

  2. 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.

  3. 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.

  4. 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 #####
  5. 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.