Configuration
Extension configuration
Open System > Settings > Extension Configuration and select
t3_. The settings are stored in
config/ under
$GLOBALS.
| Name | Type | Default |
|---|---|---|
| options |
ollama
|
|
| boolean |
1
|
|
| positive integer |
16000
|
|
| string | (empty) | |
| string |
claude-
|
|
| options |
low
|
|
| boolean |
1
|
|
| string | (empty) | |
| string |
gpt-
|
|
| string |
llama3.
|
|
| string |
http://
|
General
-
- Type
- options
- Default
ollama
The AI provider used by all AI features. Possible values:
anthropic- Anthropic Claude. Requires anthropicApiKey.
openai- OpenAI. Requires openaiApiKey.
ollama- A local Ollama server, no API key needed. See Ollama.
-
- Type
- boolean
- Default
1
Uses the AI during page analysis for improvement suggestions and internal link suggestions, and enables AI schema detection.
When disabled, the page analysis is rule-based only. The on-demand AI features (Fix buttons, text generator, image metadata) are not affected by this switch; they only need a configured provider.
-
- Type
- positive integer
- Default
16000
Upper limit of tokens per AI response for Anthropic and OpenAI. For current Claude models the limit also covers the model's thinking, so do not set it too low; you only pay for tokens actually generated. If the limit is reached before an answer is written, the log shows "Anthropic response hit maxTokens before producing text". Ollama ignores this setting.
Anthropic
-
- Type
- string
- Default
- (empty)
API key from the Anthropic Console. Required when aiProvider is
anthropic.
-
- Type
- string
- Default
claude-sonnet- 5- 5
Model ID sent to the Anthropic Messages API, for example
claude-(default),sonnet- 5- 5 claude-(higher quality, higher cost) oropus- 5- 5 claude-(lower cost). All three accept images, which the file list metadata button needs. See the list of Anthropic models for current model IDs, as older models are retired over time.haiku- 4- 5
-
- Type
- options
- Default
low
How much the model thinks before answering:
low,medium,highoroff. The extension's tasks are short, solowkeeps cost and response time down. The value is sent asoutput_. It is not sent forconfig. effort claude-andhaiku-* claude-models, which do not support it;3* offnever sends it.
-
- Type
- boolean
- Default
1
If the model declines a request (
stop_), Anthropic can retry it on another model server-side (reason: refusal fallbacks: "default", beta headerserver-). Only sent for models that support it (side- fallback- 2026- 07- 01 claude-,sonnet- 5- 5 claude-,opus- 5- 5 claude-,opus- 5 claude-). Declined requests that are not retried are logged with their refusal category.fable- 5- 1
OpenAI
-
- Type
- string
- Default
- (empty)
API key from the OpenAI platform. Required when aiProvider is
openai.
-
- Type
- string
- Default
gpt-4o- mini
Model ID sent to the OpenAI Chat Completions API. For image metadata the model must support image input (
gpt-does).4o- mini
Ollama
-
- Type
- string
- Default
llama3.2
Name of an Ollama model that has been pulled on the Ollama server, for example
llama3.,2 phi3ormistral.For the file list metadata button the model must support images, for example
llavaorllama3.. Text-only models ignore the image.2- vision
-
- Type
- string
- Default
http://ollama: 11434
Base URL of the Ollama server, without
/api. The default is the host name of anollamacontainer in a Docker Compose or DDEV setup. For a local installation usehttp://.localhost: 11434
Keep API keys out of version control
config/ is usually committed to Git. Do not store
API keys there. Set them from an environment variable in
config/ instead:
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['t3_content_quality']['aiProvider'] = 'openai';
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['t3_content_quality']['openaiApiKey']
= (string)getenv('OPENAI_API_KEY');
Values set in additional. override the values from the backend
settings form.
AI button in the rich-text editor
The ✦ AI button needs the system extension rte_.
The extension does not change existing editor presets. Use one of these
three ways to add the button:
Option 1: Use the preset of the extension
The extension registers the RTE preset t3_ in
ext_. It is the TYPO3 core default preset plus the AI
button at the end of the toolbar. Activate it in page TSconfig:
RTE.default.preset = t3_content_quality
Option 2: Import the plugin into your own preset
Import EXT: in your
own preset:
imports:
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Default.yaml' }
- { resource: 'EXT:t3_content_quality/Configuration/RTE/Plugin.yaml' }
The TYPO3 YAML loader appends list entries in the order the files are
loaded: imported files first, then the preset's own content. If your preset
defines its own toolbar., the AI button therefore appears at the
start of the toolbar. Use option 3 to place it elsewhere.
Option 3: Add the button manually
Add the module and the toolbar item to your preset where you want them:
editor:
config:
importModules:
- { module: '@woit/t3-content-quality/CKEditor/ai-text-generator.js', exports: ['AiTextGenerator'] }
toolbar:
items:
# … your existing toolbar items …
- '|'
- aiTextGenerator
See Configuration for details on RTE presets.
Page field: schema type
The extension adds the field Schema Type (Structured Data)
(tx_) to the Meta Tags palette
on the Metadata tab of the page properties. It overrides the
automatic schema.org type detection.
Options: (Auto-detect), Event, News, Tourist,
Local, Organization, FAQPage, Job,
Product.
Frontend JSON-LD middleware
The PSR-15 middleware woit/ is
registered automatically for the frontend. It runs after
typo3/ and before
typo3/.
For every HTML response it looks up an approved schema for the current page
and language in tx_. If one exists, it inserts
<script type="application/ld+json">…</script>
directly before </. No TypoScript is needed. Pages without an
approved schema are not changed.