Installation
Quick start
The recommended way to install this extension is via Composer:
composer require netresearch/nr-llm
After installation:
- Run
vendor/to create the schema and finish package setup. Composer-installed extensions are already active.bin/ typo3 extension: setup - Run the setup wizard, the first entry in AI > Setup. It creates a provider, its models and a configuration in one pass. While no provider exists, AI > Overview opens with a button to it, and on TYPO3 v14 the AI > Setup overview does too.
- Adjust what the wizard created, or add more, in AI > Setup > Providers, Models and Configurations.
- Clear caches.
Composer installation
Requirements
Ensure your system meets these requirements:
- PHP 8.2 or higher.
- TYPO3 v13.4 LTS or v14.3 LTS.
- Composer 2.x.
- netresearch/nr-vault ^1.5 (required for API key encryption; installed automatically via Composer).
Installation steps
-
Add the package
Install via Composercomposer require netresearch/nr-llmCopied! -
Set up the installed packages
Initialize installed extensionsvendor/bin/typo3 extension:setupCopied!TYPO3 treats Composer-installed extensions as active. There is no separate activation in the Extension Manager.
-
Configure API keys
Use the setup wizard at AI > Setup > Setup Wizard to auto-detect your provider and discover models.
The setup wizard guides you through provider connection, model discovery, and configuration.
Tip
Not sure which provider you need? AI > Setup > Get Started asks what you want to do first — editorial assistance, translation, metadata, media accessibility, agent workflows, developer integration — and can install a use-case pack for it: a configuration, tasks and prompt snippets, created only after you confirm the list. The Editorial Starter pack is the one currently shipped. The setup wizard stays the technical route and is linked from every screen there.
The plan you confirm also states the three things an install changes that are not new records: the snippet tags it adds to the pack's own configuration, any existing configuration that already selects one of those tags and would therefore compose the pack's snippets into its prompts too, and any existing snippet carrying one of those tags, which the added tags compose into the pack's configuration. See Get Started: use-case packs.
See Configuration reference for detailed setup instructions.
-
Clear caches
Flush all cachesvendor/bin/typo3 cache:flushCopied!
Composer is required
This guide supports Composer installations. The required nr-vault dependency also requires Composer; extracting a TER archive alone does not install a supported dependency chain.
Database setup
Run extension: after Composer installation. The table below is an
orientation, not a complete schema inventory; ext_tables.sql is the
versioned source for all extension-owned tables and added core-table fields.
| Table | Purpose |
|---|---|
tx_ | Stores provider connections and nr-vault credential identifiers. |
tx_ | Stores available LLM models with capabilities and pricing. |
tx_ | Stores use-case-specific configurations with prompts and parameters. |
tx_ | Stores one-shot prompt tasks for common operations. |
tx_ | Stores tagged prompt fragments for configuration composition. |
tx_ / tx_ | Stores conversations and their messages. |
tx_ / tx_ | Stores run state, approvals and privacy-filtered events. |
tx_ | Tracks LLM and specialized-service usage. |
Run the database compare tool after installation:
vendor/bin/typo3 extension:setup
Cache configuration
The extension uses TYPO3's caching framework. Cache configuration is set up automatically — no backend is hardcoded. TYPO3 uses your instance's default cache backend, so Redis, Valkey, or Memcached work transparently if configured.
To override the cache backend specifically for nr-llm:
use TYPO3\CMS\Core\Cache\Backend\RedisBackend;
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']
['cacheConfigurations']['nrllm_responses']
['backend'] = RedisBackend::class;
Upgrading
From previous versions
- Backup your database before upgrading.
-
Run Composer update:
Update the extensioncomposer update netresearch/nr-llm --with-all-dependenciesCopied! -
Run package setup, inspect schema changes and list pending upgrade wizards:
vendor/andbin/ typo3 extension: setup vendor/. Review each applicable wizard before running it withbin/ typo3 upgrade: list vendor/. These include provider timeouts, enforcement defaults and skill-version digests; a skill digest is not a new approval.bin/ typo3 upgrade: run <identifier> Apply required schema additions:
Update database schemavendor/bin/typo3 database:updateschemaCopied! -
Clear all caches:
Flush all cachesvendor/bin/typo3 cache:flushCopied!
Breaking changes
Check the Changelog for breaking changes between versions.
Uninstallation
To remove the extension:
- Stop nr-llm workers and scheduled jobs, remove consumer integrations and take a database backup. Decide which retained records must be exported.
-
Remove via Composer:
Remove the extensioncomposer remove netresearch/nr-llmCopied! -
Back up the database before removing retained data. The following removes all nr-llm-owned tables in this version, including conversations, runs, approvals, usage and OAuth grants. Review the installed version's schema before running it. It does not remove nr-llm fields on core tables or secrets held separately in nr-vault; review those separately.
Clean up the extension-owned tables if desired:
Drop extension database tablesDROP TABLE IF EXISTS tx_nrllm_provider; DROP TABLE IF EXISTS tx_nrllm_model; DROP TABLE IF EXISTS tx_nrllm_configuration; DROP TABLE IF EXISTS tx_nrllm_user_budget; DROP TABLE IF EXISTS tx_nrllm_configuration_begroups_mm; DROP TABLE IF EXISTS tx_nrllm_task; DROP TABLE IF EXISTS tx_nrllm_promptsnippet; DROP TABLE IF EXISTS tx_nrllm_term_list; DROP TABLE IF EXISTS tx_nrllm_glossary; DROP TABLE IF EXISTS tx_nrllm_service_usage; DROP TABLE IF EXISTS tx_nrllm_skill_source; DROP TABLE IF EXISTS tx_nrllm_skill; DROP TABLE IF EXISTS tx_nrllm_skill_approval; DROP TABLE IF EXISTS tx_nrllm_task_skill_mm; DROP TABLE IF EXISTS tx_nrllm_configuration_skill_mm; DROP TABLE IF EXISTS tx_nrllm_tool_state; DROP TABLE IF EXISTS tx_nrllm_tool_group_state; DROP TABLE IF EXISTS tx_nrllm_telemetry; DROP TABLE IF EXISTS tx_nrllm_skill_audit; DROP TABLE IF EXISTS tx_nrllm_eval_result; DROP TABLE IF EXISTS tx_nrllm_agentrun; DROP TABLE IF EXISTS tx_nrllm_agentrun_event; DROP TABLE IF EXISTS tx_nrllm_ai_session; DROP TABLE IF EXISTS tx_nrllm_ai_session_message; DROP TABLE IF EXISTS tx_nrllm_governance_event; DROP TABLE IF EXISTS tx_nrllm_mcp_server; DROP TABLE IF EXISTS tx_nrllm_mcp_tool; DROP TABLE IF EXISTS tx_nrllm_call_outcome; DROP TABLE IF EXISTS tx_nrllm_worker_heartbeat; DROP TABLE IF EXISTS tx_nrllm_mcp_oauth_grant;Copied! - Review added page/content columns with TYPO3's schema comparison. Remove only fields no longer used by an installed extension. Separately remove obsolete nr-llm grants from the groups' existing custom-permission field; these grants are not separate nr-llm columns on backend-user/group tables.
- Flush the
nrllmcache group and remove scheduled purge/worker jobs. - Review credentials and OAuth grants in nr-vault separately. Deleting nr-llm tables does not delete shared vault secrets. Revoke credentials at the provider only after checking other consumers.
- Apply the organisation's backup/export retention policy. Live database cleanup does not erase earlier backups, logs or external provider data.