The cmd-features plugin is configured through WordPress options prefixed with CMOPT_. An administrator edits them on the Command Media Features settings screen, under Settings in the WordPress admin.
An option appears on that screen once the feature that declares it is switched on for the site. This file is the machine-readable source of truth for the field titles, control types and descriptions listed below, and the settings screen renders itself from it.
Secrets. CMOPT_AI_OPENAI_KEY holds a live API credential. It is stored unencrypted in the options table, so treat database dumps accordingly and never commit a populated value.
AI search and RAG
Options for AI-generated search summaries and the retrieval that feeds them.
| Option | Type | Default | Description |
|---|---|---|---|
CMOPT_AI_OPENAI_KEYOpenAI API key | password | — | Secret key used to authenticate every request to the OpenAI API. All AI features are inert until this is set. |
CMOPT_AI_MODELOpenAI model | text | gpt-5.4-mini | Model identifier used for generative AI features. Any identifier the OpenAI API accepts may be entered here; it is not restricted to a fixed list, so a newly released model can be used without waiting for a plugin update. Falls back to gpt-5-nano when the stored value is empty. Examples, current at the time of writing: gpt-5.4-mini (preferred for speed and cost), gpt-5.4-nano, gpt-5, gpt-5-mini, gpt-5-nano. See the OpenAI model list for what is available now. |
CMOPT_AI_SYSTEM_PROMPTSystem prompt | textarea | — | Instructions given to the model before the retrieved context. Seeded with a default summarisation prompt on first activation. |
CMOPT_AI_USER_PROMPTUser prompt template | textarea | Query: %s Content: %s | Template combining the visitor's query and the retrieved context. The first %s is the query; the second is the content. |
CMOPT_AI_POST_TYPESSearched post types | text | post,page | Comma-separated list of post type slugs that retrieval draws context from. |
CMOPT_AI_NUM_ARTICLESArticles retrieved | number | 3 | How many articles are retrieved and passed to the model as context for a search summary. |
CMOPT_AI_USE_DEFAULT_WPQUERYUse the default WP_Query | checkbox | — | Set to 1 to retrieve context with WordPress's default search query instead of the plugin's custom CMRAG query. Accepted values: |
CMOPT_AI_MAX_COMPLETION_TOKENSMax completion tokens | number | 15000 | Upper bound on tokens the model may generate in one response. Any value of zero or below is ignored and the default applies. |
CMOPT_AI_PRIORITYPriority service tier | checkbox | — | Set to 1 to request OpenAI's priority service tier, which lowers latency at higher cost. Accepted values: |
CMOPT_AI_API_LIMIT_30SECAPI calls per 30 seconds | number | 20 | Per-IP rate limit over a rolling 30 second window. Set to 0 to disable this limit. |
CMOPT_AI_API_LIMIT_HOURAPI calls per hour | number | 200 | Per-IP rate limit over a rolling one hour window. Set to 0 to disable this limit. |
CMOPT_AI_PRIVILEGED_PHRASESPrivileged phrases | textarea | — | Phrases and keywords that receive special handling during retrieval. |
CMOPT_AI_DISCLAIMERAI disclaimer | text | AI generated summary. Check sources for clarity | Disclaimer shown alongside AI-generated summaries to encourage readers to verify sources. |
ChatKit
Options for the ChatKit chatbot block and the site_search tool it calls.
| Option | Type | Default | Description |
|---|---|---|---|
CMOPT_AI_CHATKIT_WORKFLOW_IDSAllowed ChatKit workflow IDs | textarea | — | Allowlist of workflow IDs a ChatKit block may request, separated by commas or newlines. A session request naming a workflow outside this list is rejected with a 403. |
CMOPT_AI_CHATKIT_SEARCH_MAX_RESULTSsite_search max results | number | 3 | How many results the ChatKit site_search tool may return. Clamped to between 1 and 10 regardless of the stored value. |
CMOPT_AI_CHATKIT_SEARCH_MAX_CHARSsite_search max characters | number | 24000 | Character budget for the ChatKit site_search payload. Clamped to between 500 and 200000 regardless of the stored value. |
Contact Form 7 suggested replies
Options for the AI-drafted suggested reply added to contact form notification emails. These options are available only when Contact Form 7 is active.
| Option | Type | Default | Description |
|---|---|---|---|
CMOPT_AI_CF7_SYSTEM_PROMPTCF7 system prompt | textarea | — | Instructions telling the model how to draft a suggested reply to a contact form enquiry. Seeded with a default support-assistant prompt on first activation. |
CMOPT_AI_CF7_USER_PROMPTCF7 user prompt template | textarea | Visitor inquiry:
%s
Context from our site:
%s | Template combining the visitor's enquiry and the retrieved context. The first %s is the enquiry; the second is the context. |
CMOPT_AI_CF7_NUM_ARTICLESCF7 articles retrieved | number | 5 | How many articles are retrieved as context when drafting a suggested reply. |
CMOPT_AI_CF7_POST_TYPESCF7 searched post types | text | — | Comma-separated post types used for context. Leave empty to inherit CMOPT_AI_POST_TYPES. |
CMOPT_AI_CF7_LABELCF7 suggestion label | text | AI generated suggested response: | Heading printed above the suggested reply in the admin notification email. |
CMOPT_AI_CF7_TIMEOUTCF7 request timeout | number | 20 | Timeout in seconds for the OpenAI request. Form submission is synchronous, so keep this low enough to stay responsive. |
