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_PROVIDERAI provider | text | auto | Which connector answers this site's AI requests. Rendered as a dropdown of the AI connectors WordPress reports, so the list reflects what is installed rather than a fixed set. auto, the default, picks the OpenAI connector when it is usable and otherwise the first connector that is. Choosing a connector by name pins the site to it, and a request fails rather than being answered by a different one. A stored value of legacy is read as auto: it used to select the plugin's own OpenAI requests, which have been removed, and a site carrying that value should keep answering rather than go quiet. |
CMOPT_AI_OPENAI_KEYOpenAI API key | password | — | Secret key for the ChatKit chatbot, whose session endpoint is OpenAI-specific and has no equivalent in the WordPress AI layer. It no longer has any part in generating search summaries or Contact Form 7 replies, which go through the connector selected above. When this is empty, ChatKit falls back to the key stored on the Connectors screen. |
CMOPT_AI_CONNECTOR_MODELConnector model | text | gpt-5.6-luna | The model every request asks for. Defaults to gpt-5.6-luna. An empty value resolves to that same default rather than deferring to WordPress, whose automatic pick is the first model the provider lists that supports the prompt — on OpenAI a flagship model, neither the cheapest nor the most suitable for a summary. The value must be an ID the connected provider lists for text generation: a model it does not list is refused, no request is sent, and the error log names the listed ID to use. Anthropic lists dated IDs (claude-haiku-4-5-20251001, not claude-haiku-4-5) and OpenRouter lists vendor-prefixed ones (openai/gpt-5.6-luna), so the default only works on the OpenAI connector. When the provider reports that a different model answered, that is written to the error log. wp cmrag "question" –debug shows the model requested and the model the provider reports. |
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 | 6 | How many articles are retrieved and offered to the model as candidate sources for a search summary. Only the articles the model reports as materially used are cited, so raising this widens the evidence available without lengthening the citation list. |
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 own retrieval 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. Applies to the OpenAI connector only. Anthropic no longer sells Priority Tier capacity, and the Anthropic and Google provider plugins do not forward a service tier, so the setting has no effect on those connectors. wp cmrag "question" –debug reports whether a tier was sent and which tier the provider says served the request. 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. |
