Configuration
Learn about all available configuration options for the LLMify plugin.
Control Panel
You can manage configuration settings through the Control Panel by visiting Settings > LLMify.
Settings
You can define a multi-environment aware config in /config/llmify.php. Settings defined in the config file override control panel settings.
Config file settings will overwrite the settings from the control panel.
isEnabled
Master toggle for Markdown creation. When disabled, no Markdown will be generated or served.
return [
'*' => [
'isEnabled' => true, // default
],
];
headlessMode
Enable this when you use Craft headless. Markdown is then generated by fetching your front-end URLs instead of relying on Twig rendering, and exposed through the API endpoints described in Headless. The auto-serve and discovery-tag features do not apply in this mode.
return [
'*' => [
'headlessMode' => false, // default
],
];
apiToken
Optional token that protects the headless API endpoints (only applies in headless mode). Set it to an environment variable holding a long random string, e.g. generated with openssl rand -hex 32. Requests must then send the same value in the X-Llmify-Token header; leave empty to keep the endpoints unprotected.
return [
'*' => [
'apiToken' => '$LLMIFY_API_TOKEN', // default: null
],
];
autoServeMarkdown
Automatically serve Markdown instead of HTML when the request contains an Accept: text/markdown header.
return [
'*' => [
'autoServeMarkdown' => true, // default
],
];
enableBotDetection
Detect known AI bots (GPTBot, ClaudeBot, ChatGPT-User, etc.) by their user agent and automatically serve Markdown to them. See Auto-Serve Markdown for the full list of detected bots.
return [
'*' => [
'enableBotDetection' => true, // default
],
];
additionalBotUserAgents
Add custom bot user agents to detect in addition to the built-in list.
return [
'*' => [
'additionalBotUserAgents' => [
['userAgent' => 'MyCustomBot'],
['userAgent' => 'AnotherBot'],
],
],
];
autoInjectDiscoveryTag
Inject a <link rel="alternate" type="text/markdown"> discovery tag into the HTML head for every page that has Markdown available.
return [
'*' => [
'autoInjectDiscoveryTag' => true, // default
],
];
isRealUrlLlm
Whether to use real page URLs or Markdown URLs in the llms.txt file. Recommended to enable together with autoServeMarkdown.
return [
'*' => [
'isRealUrlLlm' => false, // default
],
];
markdownUrlPrefix
URL prefix for individual Markdown pages (e.g. https://example.com/raw/about.md). Leave empty to use {url}.md URLs directly.
return [
'*' => [
'markdownUrlPrefix' => 'raw', // default
],
];
excludeClasses
CSS classes that should be excluded from the Markdown generation. Elements with these classes will be stripped before conversion.
return [
'*' => [
'excludeClasses' => [
['classes' => 'exclude-llmify'], // default
],
],
];
markdownConfig
Configuration passed to the HTML-to-Markdown converter. See the library docs for all available options.
return [
'*' => [
'markdownConfig' => [
'strip_tags' => true,
'header_style' => 'atx',
'remove_nodes' => 'img picture style form button input select option svg script nav noscript video audio source',
], // default
],
];
concurrentRequests
Maximum number of concurrent HTTP requests when batch generating Markdown. Valid range: 1–100.
return [
'*' => [
'concurrentRequests' => 3, // default
],
];
requestTimeout
Maximum number of seconds each request can take during batch generation.
return [
'*' => [
'requestTimeout' => 100, // default
],
];
frontMatterInFullTxt
Whether front matter should be included for each page in llms-full.txt.
return [
'*' => [
'frontMatterInFullTxt' => false, // default
],
];
Multi-Environment Example
A complete example showing environment-specific configuration:
<?php
// config/llmify.php
return [
'*' => [
'isEnabled' => true,
'autoServeMarkdown' => true,
'enableBotDetection' => true,
'autoInjectDiscoveryTag' => true,
'isRealUrlLlm' => true,
'markdownUrlPrefix' => 'raw',
'concurrentRequests' => 5,
'requestTimeout' => 120,
],
'dev' => [
'isEnabled' => false,
],
'production' => [
'concurrentRequests' => 10,
],
];