Configuration Options (CMOPTs)

Every CMOPT_* option exposed by the cmd-features plugin, with its field title, control type, default value and description.

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.

OptionTypeDefaultDescription
CMOPT_AI_PROVIDER
AI provider
textautoWhich 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_KEY
OpenAI API key
passwordSecret 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_MODEL
Connector model
textgpt-5.6-lunaThe 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. A model identifier the provider does not publish is discarded silently and something else answers, so a mismatch is written to the error log.
CMOPT_AI_SYSTEM_PROMPT
System prompt
textareaInstructions given to the model before the retrieved context. Seeded with a default summarisation prompt on first activation.
CMOPT_AI_USER_PROMPT
User prompt template
textareaQuery: %s Content: %sTemplate combining the visitor's query and the retrieved context. The first %s is the query; the second is the content.
CMOPT_AI_POST_TYPES
Searched post types
textpost,pageComma-separated list of post type slugs that retrieval draws context from.
CMOPT_AI_NUM_ARTICLES
Articles retrieved
number3How many articles are retrieved and passed to the model as context for a search summary.
CMOPT_AI_USE_DEFAULT_WPQUERY
Use the default WP_Query
checkboxSet to 1 to retrieve context with WordPress's default search query instead of the plugin's own retrieval query.

Accepted values: 1

CMOPT_AI_MAX_COMPLETION_TOKENS
Max completion tokens
number15000Upper bound on tokens the model may generate in one response. Any value of zero or below is ignored and the default applies.
CMOPT_AI_PRIORITY
Priority service tier
checkboxSet to 1 to request OpenAI's priority service tier, which lowers latency at higher cost.

Accepted values: 1

CMOPT_AI_API_LIMIT_30SEC
API calls per 30 seconds
number20Per-IP rate limit over a rolling 30 second window. Set to 0 to disable this limit.
CMOPT_AI_API_LIMIT_HOUR
API calls per hour
number200Per-IP rate limit over a rolling one hour window. Set to 0 to disable this limit.
CMOPT_AI_PRIVILEGED_PHRASES
Privileged phrases
textareaPhrases and keywords that receive special handling during retrieval.
CMOPT_AI_DISCLAIMER
AI disclaimer
textAI generated summary. Check sources for clarityDisclaimer 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.

OptionTypeDefaultDescription
CMOPT_AI_CHATKIT_WORKFLOW_IDS
Allowed ChatKit workflow IDs
textareaAllowlist 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_RESULTS
site_search max results
number3How 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_CHARS
site_search max characters
number24000Character 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.

OptionTypeDefaultDescription
CMOPT_AI_CF7_SYSTEM_PROMPT
CF7 system prompt
textareaInstructions 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_PROMPT
CF7 user prompt template
textareaVisitor inquiry: %s Context from our site: %sTemplate combining the visitor's enquiry and the retrieved context. The first %s is the enquiry; the second is the context.
CMOPT_AI_CF7_NUM_ARTICLES
CF7 articles retrieved
number5How many articles are retrieved as context when drafting a suggested reply.
CMOPT_AI_CF7_POST_TYPES
CF7 searched post types
textComma-separated post types used for context. Leave empty to inherit CMOPT_AI_POST_TYPES.
CMOPT_AI_CF7_LABEL
CF7 suggestion label
textAI generated suggested response:Heading printed above the suggested reply in the admin notification email.
CMOPT_AI_CF7_TIMEOUT
CF7 request timeout
number20Timeout in seconds for the OpenAI request. Form submission is synchronous, so keep this low enough to stay responsive.